文字列の要素はバイト型で、 通常のインデックス処理を使用してアクセスできます。文字列としてのインデックス文字列
文字列の要素をcharとして取得するにはどうすればよいですか?
"一部" [1] - > "O"
文字列の要素はバイト型で、 通常のインデックス処理を使用してアクセスできます。文字列としてのインデックス文字列
文字列の要素をcharとして取得するにはどうすればよいですか?
"一部" [1] - > "O"
最も簡単な解決策は、ルーン文字の配列に変換することです:
var runes = []rune("someString")
(注)上で反復する場合ということ文字列を変換する必要はありません。 Effective Goからこの例を参照してください:
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エンコードされません。 Unicode文字列の場合、 "char [acter]"という用語はかなり複雑で、ルーン(コードポイント)とUnicode文字のジェネラル/ユニークバイジェクションはありません。
とにかく一方は簡単な変換を使用して、そこにスライスし、使用インデックスにコードポイント(ルーン)で動作することができる:
package main
import "fmt"
func main() {
utf8 := "Hello, 世界"
runes := []rune(utf8)
fmt.Printf("utf8:% 02x\nrunes: %#v\n", []byte(utf8), runes)
}
またここで:http://play.golang.org/p/qWVSA-n93o
注:ユニコードにアクセスすることがしばしば要望をインデックスによる "文字"は設計ミスです。ほとんどのテキストデータは順次処理されます。