>  기사  >  백엔드 개발  >  Go에서 룬을 문자열로 어떻게 변환하나요?

Go에서 룬을 문자열로 어떻게 변환하나요?

Barbara Streisand
Barbara Streisand원래의
2024-11-19 11:45:03345검색

How do I Convert a Rune to a String in Go?

Go에서 룬을 문자열로 변환

Go에서 유니코드 문자로 작업할 때 룬( 유니코드 문자를 나타내는 정수)를 문자열로 변환합니다. Go는 이 작업에 대해 여러 가지 접근 방식을 제공하므로 혼란스러울 수 있습니다.

Scanner.Scan() 사용(잘못됨)

제공된 코드에서 попытаться를 사용하려면 Scanner.Scan()은 룬을 문자열로 변환합니다. 그러나 Scanner.Scan()은 어휘 분석을 위한 것이며 룬 문자를 직접 반환하지 않기 때문에 이 접근 방식은 올바르지 않습니다. 대신, 토큰 유형(예: scanner.Ident 또는 scanner.Int)을 나타내는 상수를 반환합니다.

Scanner.Next() 사용(올바른)

룬을 문자열로 올바르게 변환하려면 대신 Scanner.Next()를 사용해야 합니다. 이 함수는 입력에서 다음 룬을 읽고 이를 정수로 반환합니다. 그런 다음 strconv.QuoteRune() 함수를 사용하여 룬을 문자열로 변환할 수 있습니다.

var b scanner.Scanner
const a = `a`
b.Init(strings.NewReader(a))
c := b.Next()
fmt.Println(strconv.QuoteRune(c)) // Output: "'a'"

룬을 문자열로 직접 변환

간단히 원하는 경우 단일 룬을 문자열로 변환하려면 유형 변환을 사용할 수 있습니다. Rune은 int32의 별칭이며 Go는 내장된 string() 함수를 사용하여 정수 값을 문자열로 변환하는 것을 지원합니다.

r := rune('a')
fmt.Println(string(r)) // Output: "a"

Looping Over Runes

To 문자열의 룬을 반복하려면 for ... 범위 구성을 사용할 수 있습니다. 이 기술은 문자열의 각 문자에 대한 인덱스와 룬 값을 모두 반환합니다.

for i, r := range "abc" {
    fmt.Printf("%d - %c (%v)\n", i, r, r)
}

// Output:
// 0 - a (97)
// 1 - b (98)
// 2 - c (99)

대체 방법

룬을 문자열로 변환하는 다른 방법은 다음과 같습니다.

  • utf8.DecodeRuneInString(): 제공된 문자열에서 단일 UTF-8 인코딩 룬을 디코딩합니다.
  • []rune(): 문자열을 룬 조각으로 변환합니다.

위 내용은 Go에서 룬을 문자열로 어떻게 변환하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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