golang 프로그래밍에서는 문자열의 문자를 바꾸는 것이 일반적인 작업입니다. 단일 문자를 바꾸든 여러 문자를 바꾸든 관계없이 내장된 문자열 함수와 메서드를 사용하여 이를 수행할 수 있습니다. 이 기사에서는 PHP 편집기 Xinyi를 사용하여 golang의 문자열 문자를 바꾸는 방법을 소개합니다. 당신이 초보자이든 숙련된 개발자이든 이 글은 이 기술을 쉽게 익히는 데 도움이 되는 간결하고 명확한 지침을 제공할 것입니다.
문자열 배열의 특정 위치에 있는 문자를 바꾸려고 합니다. 내 코드는 다음과 같습니다:
으아악지금 이 명령을 실행하면 오류가 발생합니다.
으아악이 작업을 수행하는 방법을 아시나요? 나는 strings.Replace를 사용해 보았지만 내가 아는 한 그것은 주어진 문자의 모든 항목을 대체할 것이며 그 특정 문자를 대체하고 싶습니다. 도움을 주시면 감사하겠습니다. 티아.
Go의 문자열은 변경할 수 없으므로 내용을 변경할 수 없습니다. 문자열 변수의 값을 변경하려면 새 문자열 값을 할당해야 합니다.
간단한 방법은 먼저 string
를 바이트 또는 룬 슬라이스로 변환하고 변경한 후 다시 변환하는 것입니다.
다음과 같이 출력됩니다(Go Playground에서 시도해 보세요):
으아악참고: 문자열을 byte
슬라이스로 변환했습니다. 문자열을 색인화할 때 이런 일이 발생하기 때문입니다. 즉, 바이트를 색인화합니다. byte
切片,因为这就是您索引字符串时发生的情况:它索引其字节。 string
UTF-8 바이트 텍스트 시퀀스를 저장합니다. 이는 바이트를 문자에 일대일로 매핑할 필요는 없습니다.
두 번째 문자를 바꿔야 하는 경우 대신 []rune
를 사용하세요.
이 예에서는 중요하지 않지만 일반적으로 그럴 것입니다.
또한 strings.Replace()
은 (반드시) 다음 항목을 모두 대체하지 않는다는 점에 유의하세요.
매개변수 n
는 수행할 최대 대체 횟수를 나타냅니다. 따라서 다음 방법도 작동합니다(Go Playground에서 시도해 보세요):
또 다른 해결책은 문자열을 교체 가능한 문자까지 분할하고 교체 가능한 문자 뒤의 문자로 시작한 다음 이를 연결하는 것입니다(Playground로 이동에서).
으아악여기에서도 주의가 필요합니다: 슬라이스 인덱스는 문자(룬) 인덱스가 아닌 바이트 인덱스입니다.
관련 질문 보기: 불변 문자열 및 포인터 주소 p>
위 내용은 golang에서 문자열의 문자 바꾸기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!