全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
クラス java.text.Collator
java.lang.Object
|
+----java.text.Collator
- public abstract class Collator
- extends Object
- implements Cloneable, Serializable
Collator
クラスは、ロケールに依存する String
を比較するためのものです。このクラスを使って自然言語テキストの検索とソートルーチンを構築してください。
Collator
は、abstract基本クラスです。サブクラスによって、特定の照合方法を実装します。現在では、1つのサブクラス RuleBasedCollator
が JDKで提供されており、広範囲の言語に適用可能です。さらに特殊な必要性がある場合には、他のサブクラスを作成することができます。
ロケールに依存する他のクラスと同じように、staticファクトリメソッド getInstance
を使って、あるロケールに対する適切な Collator
オブジェクトを得ることができます。特定の照合方法の詳細を理解したり、その方法を修正したりする場合には、Collator
のサブクラスを見るだけで十分です。
次の例は、デフォルトロケールの Collator
を使って 2つの文字列を比較する方法を示したものです。
// Compare two strings in the default locale
Collator myCollator = Collator.getInstance();
if( myCollator.compare("abc", "ABC") < 0 )
System.out.println("abc is less than ABC");
else
System.out.println("abc is greater than or equal to ABC");
Collator
の strength特性を設定すれば、比較で重要と見なされる相違レベルを知ることができます。4つのレベル PRIMARY
、SECONDARY
、TERTIARY
、IDENTICAL
があります。どの言語の機能にどのレベルを割り当てるかは、正確には、ロケールによって異なります。たとえば、チェコ語では、"e"と "f"は主要な (primary) 相違と見なされますが、"e"と "*"は2次的 (secondary) 、"e"と "E"は 3次的 (tertiary) な相違と見なされ、"e" と "e"は同一 (identica)と見なされます。次の例は、US Englshでケースとアクセントを無視するにはどうすればよいかを示したものです。
//Get the Collator for US English and set its strength to PRIMARY
Collator usCollator = Collator.getInstance(Locale.US);
usCollator.setStrength(Collator.PRIMARY);
if( usCollator.compare("abc", "ABC") == 0 ) {
System.out.println("Strings are equivalent");
}
String
をただ一度だけ比較する場合には、compare
メソッドを使えば、最善のパフォーマンスが得られます。しかし、String
のリストをソートする場合には、String
を何回も比較しなければならないのが普通です。この場合は、CollationKey
の方がよいパフォーマンスが得られます。CollationKey
クラスでは、他の CollationKey
とビット単位で比較できるように、String
がビット列に変換されます。CollationKey
は、その String
の Collator
オブジェクトによって作成されます。
注: 異なる Collator
から作成された CollationKey
を比較することはできません。CollationKey
の使用例については、CollationKey
のクラスの説明を参照してください。
- 参照:
- RuleBasedCollator, CollationKey, CollationElementIterator, Locale
-
CANONICAL_DECOMPOSITION
- 分解モード値。
-
FULL_DECOMPOSITION
- 分解モード値。
-
IDENTICAL
- Collator強さレベル値。
-
NO_DECOMPOSITION
- 分解モード値。
-
PRIMARY
- Collator強さレベル値。
-
SECONDARY
- Collator強さレベル値。
-
TERTIARY
- Collator強さレベル値。
-
Collator()
- デフォルト構築子。
-
clone()
- Cloneableをオーバーライドします。
-
compare(String, String)
- この Collatorの照合ルールに従って、ソース文字列とターゲット文字列を比較します。
-
equals(Object)
- 2つの Collatorが等しいかどうかを比較します。
-
equals(String, String)
- この Collatorの照合ルールに基づいて 2つの文字列が等しいかどうかを比較するコンビニエンスメソッド。
-
getAvailableLocales()
- Collatorが導入されているロケールセットを入手します。
-
getCollationKey(String)
- 他の CollationKeyとビット単位で比較できるように、文字列をビット列に変換します。
-
getDecomposition()
- この Collatorの分解モードを入手します。
-
getInstance()
- 現在のデフォルトロケールの Collatorを入手します。
-
getInstance(Locale)
- 必要なロケールの Collatorを入手します。
-
getStrength()
- この Collatorの強さ特性を返します。
-
hashCode()
- この Collatorのハッシュコードを生成します。
-
setDecomposition(int)
- この Collatorの分解モードを設定します。
-
setStrength(int)
- この Collatorの強さ特性を設定します。
PRIMARY
public static final int PRIMARY
- Collatorの強さ値。これを設定すると、比較の際、PRIMARYの相違だけが相違とみなされます。言語機能への強さの割当ては、ロケールによって異なります。共通の例としては、異なる基本文字 ("a" vs "b") が PRIMARYの相違とみなされます。
- 参照:
- setStrength, getStrength
SECONDARY
public static final int SECONDARY
- Collatorの強さ値。これを設定すると、比較の際、SECONDARY以上の相違だけが相違とみなされます。言語機能への強さの割当ては、ロケールによって異なります。共通の例としては、同じ基本文字のアクセントが異なる形式 ("a" vs "*") が SECONDARYの相違とみなされます。
- 参照:
- setStrength, getStrength
TERTIARY
public static final int TERTIARY
- Collatorの強さ値。これを設定すると、比較の際、TERTIARYの相違だけが相違とみなされます。言語機能への強さの割当ては、ロケールによって異なります。共通の例としては、ケースの違い ("a" vs "A") が TERTIARYの相違とみなされます。
- 参照:
- setStrength, getStrength
IDENTICAL
public static final int IDENTICAL
- Collatorの強さ値。これを設定すると、比較の際、すべてのが相違とみなされます。言語機能への強さの割当ては、ロケールによって異なります。共通の例としては、同じ UNICODEのスペル ("*" vs "a?") が INDETICALとみなされます。
NO_DECOMPOSITION
public static final int NO_DECOMPOSITION
- 分解モード値。NO_DECOMPOSITIONを設定すると、アクセントの付いた文字を照合のために分解することはしません。こうすると、照合は最も速くなりますが、アクセントを使わない言語の場合しか正しい結果は得られません。
- 参照:
- getDecomposition, setDecomposition
CANONICAL_DECOMPOSITION
public static final int CANONICAL_DECOMPOSITION
- 分解モード値。CANONICAL_DECOMPOSITIONを設定すると、Unicode 2.0で正規変形とされる文字は、照合のために分解されます。これがデフォルトの設定です。アクセント付きの文字を正しく照合するためには、これを使用しなければなりません。
- 参照:
- getDecomposition, setDecomposition
FULL_DECOMPOSITION
public static final int FULL_DECOMPOSITION
- 分解モード値。FULL_DECOMPOSITIONを設定すると、Unicode 正規変形と Unicode 互換変形が両方とも、照合のために分解されます。この場合、アクセント付きの文字が照合されるだけでなく、特別なフォーマットをもつ文字もその正常形式で照合されます。たとえば、半分幅と完全幅の ASCIIとカタカナ文字が一緒に照合されます。FULL_DECOMPOSITIONは最も完全な方式ですので、最も遅い分解モードです。
- 参照:
- getDecomposition, setDecomposition
Collator
protected Collator()
- デフォルト構築子。この構築子は保護されていますので、サブクラスからアクセスすることができます。一般に、Collatorサブクラスを作成するには、ファクトリメソッド Instanceを呼び出します。
- 参照:
- getInstance
getInstance
public static synchronized Collator getInstance()
- 現在のデフォルトロケールに対する Collatorを入手します。デフォルトロケールは、java.util.Locale.getDefaultによって知ることができます。
- 返り値:
- デフォルトロケールの Collator (たとえば、en_US)
- 参照:
- getDefault
getInstance
public static synchronized Collator getInstance(Locale desiredLocale)
- 必要なロケールの Collatorを入手します。
- パラメータ:
- desiredLocale - 必要なロケール
- 返り値:
- 必要なロケールの Collator
- 参照:
- Locale, ResourceBundle
compare
public abstract int compare(String source,
String target)
- この Collatorの照合ルールに従って、ソース文字列をターゲット文字列を比較します。ソース文字列がターゲット文字列に対して小さいか、等しいか、大きいかによって、ゼロより小さいか、等しいか、大きい整数を返します。使用例については、Collatorクラスの説明を参照してください。
一回だけの比較であれば、このメソッドのパフォーマンスが最も優れています。与えられた文字列で複数回の比較が必要なら、CollationKey.compareToのパフォーマンスが最も優れています。CollationKeyの使用例については、Collationクラスの説明を参照してください。
- パラメータ:
- source - ソース文字列
- target - ターゲット文字列
- 返り値:
- 整数値を返します。ソースがターゲットより小さければ、値はゼロより小さい。ソースとターゲットが等しければ、値はゼロ。ソースがターゲットより大きければ、値はゼロより大きい。
- 参照:
- CollationKey, getCollationKey
getCollationKey
public abstract CollationKey getCollationKey(String source)
- Stringを、他の CollationKeyとビット単位で比較可能なビット列に変換します。Stringで複数回の比較が必要な場合は、Collator.compareよりも CollationKeyのパフォーマンスの方が優れています。CollationKeyの使用例については、Collatorクラスの説明を参照してください。
- パラメータ:
- source - 照合キーに変換する文字列
- 返り値:
- Collatorの照合ルールに基づく、指定する Stringに対する CollationKey。ソース Stringが nullなら、null CollationKeyが返されます。
- 参照:
- CollationKey, compare
equals
public boolean equals(String source,
String target)
- この Collatorの照合ルールに従って 2つの文字列が等しいかどうかを比較するためのコンビニエンスメソッドです。
- パラメータ:
- source - 比較するソース文字列
- target - 比較するターゲット文字列
- 返り値:
- 照合ルールによってそれらの文字列が等しければ、真が、等しくなければ、偽が返されます。
- 参照:
- compare
getStrength
public synchronized int getStrength()
- Collatorの強さ特性を返します。強さ特性によって、比較の際に相違とみなす最小レベルが決まります。使用例については、Collatorクラスの説明を参照してください。
- 返り値:
- この Collatorの現在の強さ特性
- 参照:
- setStrength, PRIMARY, SECONDARY, TERTIARY, IDENTICAL
setStrength
public synchronized void setStrength(int newStrength)
- Collatorの強さ特性を返します。強さ特性によって、比較の際に相違とみなす最小レベルが決まります。使用例については、Collatorクラスの説明を参照してください。
- パラメータ:
- newStrength - 新しい強さ値
- 例外: IllegalArgumentException
- 新しい強さ値が PRIMARY、SECONDARY、TERTIARY、IDENTICALのいずれでもない場合
- 参照:
- getStrength, PRIMARY, SECONDARY, TERTIARY, IDENTICAL
getDecomposition
public synchronized int getDecomposition()
- このCollatorの分解モードを入手します。分解モードによって、Unicodeで構成された文字をどのように処理するかが決まります。分解モードを調整すれば、速い照合動作と完全な照合動作の間で必要なものを選択することができます。
分解モードには次の 3つの値があります。
- NO_DECOMPOSITION,
- CANONICAL_DECOMPOSITION
- FULL_DECOMPOSITION.
これらの意味については、これらの定数の説明を参照してください。
- 返り値:
- 分解モード
- 参照:
- setDecomposition, NO_DECOMPOSITION, CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION
setDecomposition
public synchronized void setDecomposition(int decompositionMode)
- このCollatorの分解モードを設定します。分解モードの説明については、getDecompositionを参照してください。
- パラメータ:
- decompositionMode - 新しい分解モード
- 例外: IllegalArgumentException
- 指定する値が有効な分解モードでない場合
- 参照:
- getDecomposition, NO_DECOMPOSITION, CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION
getAvailableLocales
public static synchronized Locale[] getAvailableLocales()
- Collatorが導入されているロケールセットを入手します。
- 返り値:
- Collatorが導入されている使用可能なロケールのリスト
clone
public Object clone()
- Cloneableをオーバーライドします。
- オーバーライド:
- クラス Objectの clone
equals
public boolean equals(Object that)
- 2つのCollatorが等しいかどうかを比較します。
- パラメータ:
- that - これと比較する Collator
- 返り値:
- この Collatorが指定する Collatorと等しければ、真、等しくなければ、偽が返されます。
- オーバーライド:
- クラス Objectの equals
hashCode
public abstract synchronized int hashCode()
- この Collatorのハッシュコードを生成します。
- オーバーライド:
- クラス Objectの hashCode
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス