ホームページ >バックエンド開発 >Golang >Go 文字列内の数値ではなく個々の文字にアクセスするにはどうすればよいですか?

Go 文字列内の数値ではなく個々の文字にアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-13 03:13:13462ブラウズ

How to Access Individual Characters in a Go String Instead of Their Numerical Values?

Go 文字列内の文字にアクセスする

この質問では、Go 文字列内の文字にアクセスする方法を検討し、スライスとしての文字列の性質を詳しく調べます。バイト数と文字、ルーン、Unicode コード間の関係ポイント。

元の質問:

「HELLO」[1] にアクセスするときに、数値 69 の代わりに「E」文字を取得するにはどうすればよいですか?

答え:

文字列から文字を取得するには、 Go のキャラクター表現を理解する必要があります。解釈された文字列リテラルは、UTF-8 でエンコードされた文字のシーケンスであり、ASCII 文字は 1 バイトのみを占めます。したがって、「E」文字を取得するには、次の変換が必要です:

fmt.Println(string("Hello"[1])) // ASCII only

代替: ルーン文字の使用

Unicode サポートの場合、Unicode を表すルーン文字コードポイントを使用できます。これらは UTF-8 文字列と互換性があります:

fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8

このコードは "e" 文字を出力します。

Go の文字処理機能

Go が文字とバイトの間で変換する関数を提供していることは注目に値します。たとえば、byte(c) メソッドは文字 (ルーン) を対応するバイトに変換し、rune(b) はバイトを文字に変換します。

追加の読み方:

  • [Go プログラミング言語仕様セクション変換](https://go.dev/ref/spec#Conversions)
  • [Go ブログ: Go の文字列、バイト、ルーン、文字](https://blog.golang.org/strings )

以上がGo 文字列内の数値ではなく個々の文字にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。