>백엔드 개발 >Golang >golang에서 문자열의 문자 바꾸기

golang에서 문자열의 문자 바꾸기

WBOY
WBOY앞으로
2024-02-09 18:09:071246검색

golang에서 문자열의 문자 바꾸기

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제