public final class Normalizer extends Object
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」を参照してください。
修飾子と型 | クラスと説明 |
---|---|
static class |
Normalizer.Form
この列挙は、「Unicode Standard Annex #15 — Unicode Normalization Forms」に記述されている 4 つの Unicode 正規化形式の定数と、それらにアクセスするための 2 つのメソッドを提供します。
|
修飾子と型 | メソッドと説明 |
---|---|
static boolean |
isNormalized(CharSequence src, Normalizer.Form form)
指定された char 値のシーケンスが正規化されているかどうかを判定します。
|
static String |
normalize(CharSequence src, Normalizer.Form form)
char 値のシーケンスを正規化します。
|
public static String normalize(CharSequence src, Normalizer.Form form)
src
- 正規化する char 値のシーケンス。form
- 次のいずれかの正規化形式。Normalizer.Form.NFC
、Normalizer.Form.NFD
、Normalizer.Form.NFKC
、Normalizer.Form.NFKD
NullPointerException
- src
または form
が null の場合public static boolean isNormalized(CharSequence src, Normalizer.Form form)
src
- チェック対象の char 値のシーケンス。form
- 次のいずれかの正規化形式。Normalizer.Form.NFC
、Normalizer.Form.NFD
、Normalizer.Form.NFKC
、Normalizer.Form.NFKD
NullPointerException
- src
または form
が null の場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.