>백엔드 개발 >Golang >golang 문자를 배열로

golang 문자를 배열로

WBOY
WBOY원래의
2023-05-12 20:34:35811검색

Golang은 Google에서 출시한 프로그래밍 언어입니다. 설계 목표는 소프트웨어 개발의 효율성과 유지 관리성을 향상시키는 것입니다. Golang에서 문자와 문자열은 서로 다른 두 가지 데이터 유형이지만 문자열을 문자 배열로 변환해야 하는 경우가 종종 있습니다. 이 기사에서는 Golang에서 문자를 배열로 변환하는 방법을 소개합니다.

Golang에서는 문자와 문자열의 개념이 비교적 명확합니다. 문자는 유니코드 코드 포인트이고 4바이트를 차지하는 반면, 문자열은 UTF-8을 사용하여 인코딩된 여러 문자의 시퀀스이며 각 문자는 1-4바이트를 차지합니다. 따라서 문자열을 문자 배열로 변환해야 할 때 다음 질문을 고려해야 합니다.

  • 문자 배열의 요소 유형은 무엇입니까?
  • 문자 배열의 길이는 얼마인가요?
  • 문자열을 문자 배열로 변환하는 방법은 무엇인가요?

아래에서 하나씩 설명드리겠습니다.

  1. 문자 배열의 요소 유형

Golang에서 문자의 데이터 유형은 int32 유형의 별칭인 rune입니다. 따라서 문자 배열을 정의할 때 해당 요소 유형은 rune이어야 합니다.

var arr []rune
  1. 문자 배열의 길이

Golang에서는 len() 함수를 사용하여 문자열의 길이를 얻을 수 있지만 문자열의 길이는 포함된 문자 수와 동일하지 않습니다. 유니코드 문자는 여러 바이트로 구성될 수 있으므로 문자열의 길이는 포함된 문자 수와 동일하지 않은 경우가 많습니다. 문자열을 문자 배열로 올바르게 변환하려면 unicode/utf8 패키지의 함수를 사용하여 문자열에 포함된 문자 수를 계산해야 합니다.

import "unicode/utf8"

func countChars(s string) int {
    return utf8.RuneCountInString(s)
}

length := countChars("Hello, world!")
arr := make([]rune, length)
  1. 문자열을 문자 배열로 변환

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

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