1. ホーム
  2. string

[解決済み] Goで文字列をルーン文字で反復処理するにはどうしたらいいですか?

2023-06-05 10:46:03

質問

これが欲しかったんです。

for i := 0; i < len(str); i++ {
    dosomethingwithrune(str[i]) // takes a rune
}

しかし、結局のところ str[i] は型が byte ( uint8 ) よりも rune .

文字列をバイト単位ではなくルーン単位で反復処理するにはどうしたらよいでしょうか。

どのように解決するのですか?

次の例を参照してください。 効果的な囲碁 :

for pos, char := range "日本語" {
    fmt.Printf("character %c starts at byte position %d\n", char, pos)
}

これは、印刷します。

character 日 starts at byte position 0
character 本 starts at byte position 3
character 語 starts at byte position 6

文字列の場合、範囲はより多くの仕事をし、UTF-8を解析して個々の UTF-8をパースすることによって、個々のユニコード コード ポイントを分割します。