Java 文字列内の Unicode コードポイントの反復
Java 文字列のコードポイントを走査する必要がある状況に遭遇したことがあるかもしれませんが、標準メソッド String#codePointAt(int) は最適ではありません。特定の文字オフセットのコードポイントを返しますが、コードポイント オフセットと一致しません。
この問題に対処するための一般的なアプローチは、String#charAt(int) を利用して文字を抽出することです。指定されたインデックスを調べて、それが高サロゲート範囲内にあるかどうかを確認します。ただし、高サロゲート範囲 (2 文字または 1 文字) でのコードポイントの格納と、そのようなアプローチのパフォーマンスへの影響に関して懸念が生じます。
幸いなことに、Java は、コードポイントを反復処理するためのより効率的なソリューションを提供します。 String#codePointAt(int) を使用します。包括的なアプローチは次のとおりです。
<code class="java">final int length = s.length(); for (int offset = 0; offset < length; ) { final int codepoint = s.codePointAt(offset); // Perform desired operations on the codepoint offset += Character.charCount(codepoint); }</code>
このメソッドは BMP 外部のコードポイントを正確に処理し、すべての Unicode 文字に対する信頼性の高い反復を保証します。
以上が記事の本質を捉え、質問を投げかける、いくつかのタイトルのオプションを次に示します。 * **Java で Unicode コードポイントを反復処理する: どうすれば効率的に実行できますか?** * **Java 文字列とコードップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。