Java 文字列内の Unicode コードポイントを効率的に反復するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-02 06:49:02
オリジナル
498 人が閲覧しました

How to Efficiently Iterate Over Unicode Codepoints in Java Strings?

Java String での Unicode コードポイントの反復

String クラスは Unicode コードポイントにアクセスするための codePointAt(int) メソッドを提供しますが、そのインデックス付けは依存しますコードポイント オフセットではなく文字オフセットに基づいて。これにより、高サロゲート範囲内の文字の処理と、文字ごとのスキャンを使用した提案された反復アプローチの効率についての懸念が生じます。

改良された反復ソリューション

Java内部の文字列表現では、UTF-16 ベースのエンコード スキームが使用されます。 Basic Multilingual Plane (BMP) の外側の文字は、代理スキームを使用してエンコードされます。効率的に反復するには、次の標準的なアプローチの使用を検討してください:

<code class="java">final int length = s.length();
for (int offset = 0; offset < length; ) {
   final int codepoint = s.codePointAt(offset);

   // process the codepoint

   offset += Character.charCount(codepoint);
}</code>
ログイン後にコピー

このアプローチは、BMP の外の文字のサロゲート ペアを正しく処理します。 Character.charCount(codepoint) を利用することで、各コードポイントの適切な文字数だけオフセットを効率的に増加させます。

以上がJava 文字列内の Unicode コードポイントを効率的に反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!