はじめに
Java 文字列の Unicode コードポイントの反復処理には、一意のJava は UTF-16 風のエンコーディングを使用するため、このアプローチは重要です。この記事では、さまざまな戦略を検討し、基本多言語面 (BMP) の外側の文字エンコードに関する懸念に対処します。
問題へのアプローチ
最初は String の使用を検討するかもしれません。 #codePointAt(int) 文字オフセットによってインデックス付けされます。ただし、このアプローチには 2 つの懸念があります。それは、コードポイント オフセットによってインデックス付けされていないことと、BMP の外部でコードポイントを処理することによって課題が生じることです。
代替アプローチには、String#charAt(int) を使用して文字を取得し、そのメンバーシップをテストすることが含まれます。高いサロゲート範囲。この方法は、コードポイントが BMP の外側にあるかどうかを判断する方法を提供しますが、次の欠点があります:
最適な解決策
幸いなことに、Java は String#codePointAt(int):
<code class="java">for (int offset = 0; offset < length; ) { final int codepoint = s.codePointAt(offset); // do something with the codepoint offset += Character.charCount(codepoint); }</code>
懸念事項への対処
結論
まとめると、Java String で Unicode コードポイントを反復処理するには、基礎となるエンコーディングについての深い理解が必要です。ただし、この記事で概説されている標準的なアプローチを使用すると、この一般的なニーズに対する正しく効率的なソリューションが提供されます。以上がJava 文字列で Unicode コードポイントを反復処理するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。