クラスNormalizer

java.lang.Object
java.text.Normalizer

public final class Normalizer extends Object
このクラスは、テキストのソートや検索が容易になるようにUnicodeテキストをそれと等価な合成形式または分解形式に変換する、normalizeメソッドを提供します。 normalizeメソッドは、「Unicode Standard Annex#15-Unicode Normalization Forms」に記述されている標準の正規化形式をサポートしています。

Unicodeでは、アクセントなどの修飾の付いた文字をいくつかの方法で符号化できます。 文字A-acuteを例にとります。 これは、Unicodeでは単一の文字(合成形式)として符号化できます。

     U+00C1    LATIN CAPITAL LETTER A WITH ACUTE
または、2つの独立した文字(分解形式)として符号化できます。
     U+0041    LATIN CAPITAL LETTER A
     U+0301    COMBINING ACUTE ACCENT
ただし、プログラムのユーザーにとっては、どちらのシーケンスも、ユーザー・レベルでは同じ文字「acuteアクセント付きのA」として扱われるべきです。 テキストの検索や比較を行うときに、これら2つのシーケンスが等価に扱われることを確認する必要があります。 また、複数のアクセントを持つ文字も処理する必要があります。 文字の結合アクセントの順序が重要になる場合もあれば、アクセントの順序が異なっても実際には等価になる場合もあります。

同様に、文字列「ffi」は、3つの独立した文字として符号化できます。

     U+0066    LATIN SMALL LETTER F
     U+0066    LATIN SMALL LETTER F
     U+0069    LATIN SMALL LETTER I
または、単一の文字として符号化できます。
     U+FB03    LATIN SMALL LIGATURE FFI
合字ffiは、区別可能な意味上の文字ではなく、厳密にはUnicodeに含まれるべきではありません。ただし、既存の文字セットですでに提供されているため、その互換性のために含まれています。 Unicode標準では、このような文字を、それに対応する意味上の文字に「互換」分解することによって識別します。 検索や比較を行うとき、これらのマッピングを使用する必要がしばしば発生するでしょう。

上記の最初の例で示したように、normalizeメソッドでテキストを正規合成形式または正規分解形式に変換すると、このような問題を解決するのに役立ちます。 また、このメソッドで互換分解を実行して、互換文字をその等価な文字と同じものとして扱うこともできます。 さらに、normalizeメソッドはアクセントを適切な正規の順序に並べ替えるので、ユーザーがアクセントの並べ替えについて心配する必要はありません。

W3Cでは、NFCでテキストを交換するよう一般に推奨しています。 また、従来の文字エンコーディングのほとんどは事前合成形式だけを使用し、それ自体では連結マークの符号化を行わない場合がよくあります。 このような文字エンコーディングへの変換を行うには、UnicodeテキストをNFCに正規化する必要があります。 使用例については、「Unicode Standard Annex」を参照してください。

導入されたバージョン:
1.6
外部仕様
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static enum 
    この列挙は、「Unicode Standard Annex#15-Unicode Normalization Forms」に記述されている4つのUnicode正規化形式の定数と、それらにアクセスするための2つのメソッドを提供します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static boolean
    指定されたchar値のシーケンスが正規化されているかどうかを判定します。
    static String
    char値のシーケンスを正規化します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。