>백엔드 개발 >Golang >숫자 값 대신 Go 문자열의 개별 문자에 액세스하는 방법은 무엇입니까?

숫자 값 대신 Go 문자열의 개별 문자에 액세스하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-13 03:13:13464검색

How to Access Individual Characters in a Go String Instead of Their Numerical Values?

Go 문자열의 문자 액세스

이 질문은 Go 문자열 내의 문자에 액세스하는 방법을 탐색하고 문자열의 특성을 슬라이스로 탐구합니다. 바이트 수와 문자, 룬 및 유니코드 코드 포인트 간의 관계.

원본 질문:

"HELLO"[1]에 액세스할 때 숫자 값 69 대신 "E" 문자를 얻으려면 어떻게 해야 합니까?

답변:

문자열에서 문자를 검색하려면 Go의 문자 표현을 이해해야 합니다. 해석된 문자열 리터럴은 UTF-8로 인코딩된 문자 시퀀스로, ASCII 문자는 1바이트만 차지합니다. 따라서 "E" 문자를 얻으려면 다음 변환이 필요합니다.

fmt.Println(string("Hello"[1])) // ASCII only

대안: 룬 사용

유니코드 지원의 경우 유니코드를 나타내는 룬 코드 포인트를 사용할 수 있습니다. 이는 UTF-8 문자열과 호환됩니다:

fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8

이 코드는 "e" 문자를 출력합니다.

Go의 문자 처리 기능

Go가 문자와 바이트 간 변환 기능을 제공한다는 점은 주목할 가치가 있습니다. 예를 들어, byte(c) 메소드는 문자(룬)를 해당 바이트로 변환하고, rune(b)는 바이트를 문자로 변환합니다.

추가 참고 사항:

  • [프로그래밍 언어 사양 섹션으로 이동 전환](https://go.dev/ref/spec#Conversions)
  • [Go 블로그: Go의 문자열, 바이트, 룬 및 문자](https://blog.golang.org/strings )

위 내용은 숫자 값 대신 Go 문자열의 개별 문자에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.