ホームページ  >  記事  >  Java  >  Java の Character.isSurrogate() 関数を使用して、文字がサロゲート ペアであるかどうかを判断します

Java の Character.isSurrogate() 関数を使用して、文字がサロゲート ペアであるかどうかを判断します

WBOY
WBOYオリジナル
2023-07-25 16:11:001273ブラウズ

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 エンコーディングの特殊なケースに注意を払う必要があります。

概要:

  • Unicode エンコードでは、サロゲート ペアは 2 つの文字が 1 つの文字を表すために使用される状況を指します。
  • Character.isSurrogate() 関数を使用して、文字がサロゲート ペアであるかどうかを判断します。
  • サロゲート ペアは、上位文字と下位文字で構成されます。
  • 文字を処理するときは、Unicode エンコードで考えられるサロゲート ペアに注意する必要があります。

以上がJava の Character.isSurrogate() 関数を使用して、文字がサロゲート ペアであるかどうかを判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。