Golang은 Google에서 출시한 프로그래밍 언어입니다. 설계 목표는 소프트웨어 개발의 효율성과 유지 관리성을 향상시키는 것입니다. Golang에서 문자와 문자열은 서로 다른 두 가지 데이터 유형이지만 문자열을 문자 배열로 변환해야 하는 경우가 종종 있습니다. 이 기사에서는 Golang에서 문자를 배열로 변환하는 방법을 소개합니다.
Golang에서는 문자와 문자열의 개념이 비교적 명확합니다. 문자는 유니코드 코드 포인트이고 4바이트를 차지하는 반면, 문자열은 UTF-8을 사용하여 인코딩된 여러 문자의 시퀀스이며 각 문자는 1-4바이트를 차지합니다. 따라서 문자열을 문자 배열로 변환해야 할 때 다음 질문을 고려해야 합니다.
아래에서 하나씩 설명드리겠습니다.
Golang에서 문자의 데이터 유형은 int32 유형의 별칭인 rune입니다. 따라서 문자 배열을 정의할 때 해당 요소 유형은 rune이어야 합니다.
var arr []rune
Golang에서는 len() 함수를 사용하여 문자열의 길이를 얻을 수 있지만 문자열의 길이는 포함된 문자 수와 동일하지 않습니다. 유니코드 문자는 여러 바이트로 구성될 수 있으므로 문자열의 길이는 포함된 문자 수와 동일하지 않은 경우가 많습니다. 문자열을 문자 배열로 올바르게 변환하려면 unicode/utf8 패키지의 함수를 사용하여 문자열에 포함된 문자 수를 계산해야 합니다.
import "unicode/utf8" func countChars(s string) int { return utf8.RuneCountInString(s) } length := countChars("Hello, world!") arr := make([]rune, length)
Golang은 문자열을 문자 배열로 변환하는 두 가지 함수인 []rune() 및 []byte()를 제공합니다. 그 중 []rune()은 문자열을 룬 유형의 배열로 변환하며, 각 문자는 4바이트를 차지합니다. []byte()는 문자열을 바이트 유형의 배열로 변환하며, 각 문자는 1바이트를 차지하지만 잘못된 문자가 나타날 수 있습니다. .
s := "Hello, 世界" arr := []rune(s) // 将字符串s转换成rune类型的数组
완성된 코드는 다음과 같습니다.
package main import ( "fmt" "unicode/utf8" ) func countChars(s string) int { return utf8.RuneCountInString(s) } func main() { s := "Hello, 世界" length := countChars(s) arr := make([]rune, length) for i, c := range s { arr[i] = c } fmt.Println(arr) }
실행 결과는 다음과 같습니다.
[72 101 108 108 111 44 32 19990 30028]
이 글의 소개를 통해 Golang에서 문자열을 문자 배열로 변환하는 방법을 배웠습니다. 이는 텍스트 데이터로 작업하고 문자열에 대한 알고리즘을 구현하는 데 유용합니다.
위 내용은 golang 문자를 배열로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!