Java の Character.isSurrogate() 関数を使用して、文字がサロゲート ペアであるかどうかを判断する
文字を処理するときに、サロゲート ペアなどの特殊な状況が発生することがあります。サロゲート ペアは、Unicode エンコードで 2 つの文字を使用して 1 つの文字を表す状況を指します。 Java では、Character クラスの isSurrogate() 関数を使用して、文字がサロゲート ペアであるかどうかを判断できます。
サロゲート ペアの出現は、Unicode エンコード空間の制限を解決することです。 Unicode エンコードには合計 1,114,112 のコード ポイントがあり、このうち 65536 コード ポイントのみが基本多言語プレーン (BMP) に割り当てられ、他のコード ポイントは追加の 17 プレーンに割り当てられます。この制限により、非常にまれな一部の文字は単一の UTF-16 文字で表現できないため、サロゲート ペアの使用が必要になります。
サロゲート ペアは、上位文字と下位文字で構成されます。具体的には、上位文字の範囲は U D800 から U DBFF (合計 1024 コード ポイント)、下位文字の範囲は、オーダー文字の範囲は U DC00 から U DFFF (合計 1024 コード ポイント) です。 2 つの文字の組み合わせは、U 10000 から U 10FFFF までのすべての文字を表すことができます。
以下は、Java コードを使用して文字がサロゲート ペアであるかどうかを判断する例です:
public class SurrogatePairExample { public static void main(String[] args) { char[] chars = { 'A', 'B', 'uD800', 'uDC00', 'uD800', 'uDFFF', 'uDFFF', 'C' }; for (char c : chars) { if (Character.isSurrogate(c)) { System.out.println("字符 " + c + " 是代理对"); } else { System.out.println("字符 " + c + " 不是代理对"); } } } }
上記のコードは、いくつかの通常の文字といくつかのサロゲート ペア文字を含む文字配列を定義します。 (「A」、「B」、「uD800」、「uDC00」、「uD800」、「uDFFF」、「uDFFF」、「C」)。次に、配列内の各文字をループし、Character.isSurrogate() 関数を使用して、その文字がサロゲート ペアであるかどうかを判断します。プロキシペアの場合は、対応する情報が出力されます。
上記のコードを実行すると、出力結果は次のようになります:
字符 A 不是代理对 字符 B 不是代理对 字符 是代理对 字符 是代理对 字符 是代理对 字符 是代理对 字符 是代理对 字符 C 不是代理对
サロゲート ペアの文字がサロゲート ペアとして正しく判断され、その他の通常の文字が非サロゲート ペアとして判断されることがわかります。エージェントペア。
Character.isSurrogate() 関数を使用すると、文字がサロゲート ペアであるかどうかを簡単に判断できます。これは、Unicode エンコードが懸念されるシナリオを処理する場合に役立ちます。文字を処理するときは、サロゲート ペアの存在による誤った結果を避けるために、Unicode エンコーディングの特殊なケースに注意を払う必要があります。
概要:
以上がJava の Character.isSurrogate() 関数を使用して、文字がサロゲート ペアであるかどうかを判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。