Java Strings での Unicode コードポイントの反復
String クラスは Unicode コードポイントにアクセスするための codePointAt(int) メソッドを提供しますが、そのインデックス付けは依存します。コードポイント オフセットではなく文字オフセットに基づいて。これにより、高サロゲート範囲内の文字の処理と、文字ごとのスキャンを使用した提案された反復アプローチの効率についての懸念が生じます。
改良された反復ソリューション
Java の内部の文字列表現では、UTF-16 ベースのエンコード スキームが使用されます。 Basic Multilingual Plane (BMP) の外側の文字は、代理スキームを使用してエンコードされます。効率的に反復するには、次の標準的なアプローチの使用を検討してください。
final int length = s.length();
for (int offset = 0; offset このアプローチは、BMP 外の文字のサロゲート ペアを正しく処理します。 Character.charCount(codepoint) を利用することで、各コードポイントの適切な文字数だけオフセットを効率的に増加させます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3