IT

골랑 문자열에 있는 문자를 색인하는 방법은?

itgroup 2023. 10. 25. 23:15
반응형

골랑 문자열에 있는 문자를 색인하는 방법은?

69가 아닌 "E" 출력을 얻는 방법은?

package main

import "fmt"

func main() {
    fmt.Print("HELLO"[1])
}

골랑은 문자를 바이트로 변환하는 기능이 있습니까?

해석된 문자열 리터럴은 개별 문자의 UTF-8 인코딩을 사용하는 큰따옴표 " 사이의 문자 시퀀스입니다.UTF-8에서 ASCII 문자는 처음 128개의 유니코드 문자에 해당하는 단일 바이트입니다.문자열은 바이트 단위로 동작합니다.룬은 유니코드 코드 포인트를 식별하는 정수 값입니다.그러므로,

package main

import "fmt"

func main() {
    fmt.Println(string("Hello"[1]))              // ASCII only
    fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8
    fmt.Println(string([]rune("Hello, 世界")[8])) // UTF-8
}

출력:

e
e
界

읽기:

변환에 대한 프로그래밍 언어 사양 섹션으로 이동합니다.

바둑 블로그: 바둑의 문자열, 바이트, 룬 및 문자

이거 어때요?

fmt.Printf("%c","HELLO"[1])

피터가 지적한 것처럼, ASC 이상을 허용하는 것은II:

fmt.Printf("%c", []rune("HELLO")[1])

슬라이싱을 통해서도 가능합니다.

package main

import "fmt"

func main() {
    fmt.Print("HELLO"[1:2])
}

참고: 이 솔루션은 ASCII 문자에만 적용됩니다.

문자열로 타이프 캐스트를 해볼 수도 있습니다.

package main

import "fmt"

func main() {
    fmt.Println(string("Hello"[1]))
}

Go에는 이런 문자 유형이 없습니다. 바이트는 종종 ASCII 문자에 사용되고 룬은 유니코드 문자에 사용되지만 둘 다 정수 유형(uint8 및 int32)에 대한 별칭일 뿐입니다.따라서 숫자 대신 문자로 인쇄하도록 강제하려면 다음을 사용해야 합니다.Printf("%c", x).그%c형식 규격은 모든 정수 형식에 적용됩니다.

문자를 문자열로 해석하는 일반적인 해결책은string("HELLO"[1]).

물론 리치의 해결책도 효과가 있습니다.

색인별로 문자를 가져오려면 이 방법을 사용합니다.

package main

import (
      "fmt"
      "strings"
)

func main() {
   str := strings.Split("HELLO","")
    fmt.Print(str[1])
}

문자열 문자는 룬이므로 인쇄하려면 문자열로 다시 변환해야 합니다.

fmt.Print(string("HELLO"[1]))

문자열에서 문자를 분리하는 또 다른 솔루션

package main
import "fmt"

   func main() {
        var word string = "ZbjTS"

       // P R I N T 
       fmt.Println(word)
       yo := string([]rune(word)[0])
       fmt.Println(yo)

       //I N D E X 
       x :=0
       for x < len(word){
           yo := string([]rune(word)[x])
           fmt.Println(yo)
           x+=1
       }

}

문자열 배열의 경우에도:

fmt.Println(string([]rune(sArray[0])[0]))

// = 주석줄

해결책은 다음과 같습니다.

 package main

 import "fmt"

func main() {
  str := "HELLO"
  string(str[0])//H
  string(str[1])//E
  string(str[2])//L
  string(str[3])//L
  string(str[4])//O
}

언급URL : https://stackoverflow.com/questions/15018545/how-to-index-characters-in-a-golang-string

반응형