全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス 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");
 

Collatorstrength特性を設定すれば、比較で重要と見なされる相違レベルを知ることができます。4つのレベル PRIMARYSECONDARYTERTIARYIDENTICALがあります。どの言語の機能にどのレベルを割り当てるかは、正確には、ロケールによって異なります。たとえば、チェコ語では、"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は、その StringCollatorオブジェクトによって作成されます。
注: 異なる Collatorから作成された CollationKeyを比較することはできません。CollationKeyの使用例については、CollationKeyのクラスの説明を参照してください。

参照:
RuleBasedCollator, CollationKey, CollationElementIterator, Locale

Variable Index

 o CANONICAL_DECOMPOSITION
分解モード値。
 o FULL_DECOMPOSITION
分解モード値。
 o IDENTICAL
Collator強さレベル値。
 o NO_DECOMPOSITION
分解モード値。
 o PRIMARY
Collator強さレベル値。
 o SECONDARY
Collator強さレベル値。
 o TERTIARY
Collator強さレベル値。

Constructor Index

 o Collator()
デフォルト構築子。

Method Index

 o clone()
Cloneableをオーバーライドします。
 o compare(String, String)
この Collatorの照合ルールに従って、ソース文字列とターゲット文字列を比較します。
 o equals(Object)
2つの Collatorが等しいかどうかを比較します。
 o equals(String, String)
この Collatorの照合ルールに基づいて 2つの文字列が等しいかどうかを比較するコンビニエンスメソッド。
 o getAvailableLocales()
Collatorが導入されているロケールセットを入手します。
 o getCollationKey(String)
他の CollationKeyとビット単位で比較できるように、文字列をビット列に変換します。
 o getDecomposition()
この Collatorの分解モードを入手します。
 o getInstance()
現在のデフォルトロケールの Collatorを入手します。
 o getInstance(Locale)
必要なロケールの Collatorを入手します。
 o getStrength()
この Collatorの強さ特性を返します。
 o hashCode()
この Collatorのハッシュコードを生成します。
 o setDecomposition(int)
この Collatorの分解モードを設定します。
 o setStrength(int)
この Collatorの強さ特性を設定します。

Variables

 o PRIMARY
  public static final int PRIMARY
Collatorの強さ値。これを設定すると、比較の際、PRIMARYの相違だけが相違とみなされます。言語機能への強さの割当ては、ロケールによって異なります。共通の例としては、異なる基本文字 ("a" vs "b") が PRIMARYの相違とみなされます。

参照:
setStrength, getStrength
 o SECONDARY
  public static final int SECONDARY
Collatorの強さ値。これを設定すると、比較の際、SECONDARY以上の相違だけが相違とみなされます。言語機能への強さの割当ては、ロケールによって異なります。共通の例としては、同じ基本文字のアクセントが異なる形式 ("a" vs "*") が SECONDARYの相違とみなされます。

参照:
setStrength, getStrength
 o TERTIARY
  public static final int TERTIARY
Collatorの強さ値。これを設定すると、比較の際、TERTIARYの相違だけが相違とみなされます。言語機能への強さの割当ては、ロケールによって異なります。共通の例としては、ケースの違い ("a" vs "A") が TERTIARYの相違とみなされます。

参照:
setStrength, getStrength
 o IDENTICAL
  public static final int IDENTICAL
Collatorの強さ値。これを設定すると、比較の際、すべてのが相違とみなされます。言語機能への強さの割当ては、ロケールによって異なります。共通の例としては、同じ UNICODEのスペル ("*" vs "a?") が INDETICALとみなされます。

 o NO_DECOMPOSITION
  public static final int NO_DECOMPOSITION
分解モード値。NO_DECOMPOSITIONを設定すると、アクセントの付いた文字を照合のために分解することはしません。こうすると、照合は最も速くなりますが、アクセントを使わない言語の場合しか正しい結果は得られません。

参照:
getDecomposition, setDecomposition
 o CANONICAL_DECOMPOSITION
  public static final int CANONICAL_DECOMPOSITION
分解モード値。CANONICAL_DECOMPOSITIONを設定すると、Unicode 2.0で正規変形とされる文字は、照合のために分解されます。これがデフォルトの設定です。アクセント付きの文字を正しく照合するためには、これを使用しなければなりません。

参照:
getDecomposition, setDecomposition
 o FULL_DECOMPOSITION
  public static final int FULL_DECOMPOSITION
分解モード値。FULL_DECOMPOSITIONを設定すると、Unicode 正規変形と Unicode 互換変形が両方とも、照合のために分解されます。この場合、アクセント付きの文字が照合されるだけでなく、特別なフォーマットをもつ文字もその正常形式で照合されます。たとえば、半分幅と完全幅の ASCIIとカタカナ文字が一緒に照合されます。FULL_DECOMPOSITIONは最も完全な方式ですので、最も遅い分解モードです。

参照:
getDecomposition, setDecomposition

Constructors

 o Collator
  protected Collator()
デフォルト構築子。この構築子は保護されていますので、サブクラスからアクセスすることができます。一般に、Collatorサブクラスを作成するには、ファクトリメソッド Instanceを呼び出します。

参照:
getInstance

Methods

 o getInstance
  public static synchronized Collator getInstance()
現在のデフォルトロケールに対する Collatorを入手します。デフォルトロケールは、java.util.Locale.getDefaultによって知ることができます。

返り値:
デフォルトロケールの Collator (たとえば、en_US)
参照:
getDefault
 o getInstance
  public static synchronized Collator getInstance(Locale desiredLocale)
必要なロケールの Collatorを入手します。

パラメータ:
desiredLocale - 必要なロケール
返り値:
必要なロケールの Collator
参照:
Locale, ResourceBundle
 o compare
  public abstract int compare(String source,
                              String target)
この Collatorの照合ルールに従って、ソース文字列をターゲット文字列を比較します。ソース文字列がターゲット文字列に対して小さいか、等しいか、大きいかによって、ゼロより小さいか、等しいか、大きい整数を返します。使用例については、Collatorクラスの説明を参照してください。

一回だけの比較であれば、このメソッドのパフォーマンスが最も優れています。与えられた文字列で複数回の比較が必要なら、CollationKey.compareToのパフォーマンスが最も優れています。CollationKeyの使用例については、Collationクラスの説明を参照してください。

パラメータ:
source - ソース文字列
target - ターゲット文字列
返り値:
整数値を返します。ソースがターゲットより小さければ、値はゼロより小さい。ソースとターゲットが等しければ、値はゼロ。ソースがターゲットより大きければ、値はゼロより大きい。
参照:
CollationKey, getCollationKey
 o 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
 o equals
  public boolean equals(String source,
                        String target)
この Collatorの照合ルールに従って 2つの文字列が等しいかどうかを比較するためのコンビニエンスメソッドです。

パラメータ:
source - 比較するソース文字列
target - 比較するターゲット文字列
返り値:
照合ルールによってそれらの文字列が等しければ、真が、等しくなければ、偽が返されます。
参照:
compare
 o getStrength
  public synchronized int getStrength()
Collatorの強さ特性を返します。強さ特性によって、比較の際に相違とみなす最小レベルが決まります。使用例については、Collatorクラスの説明を参照してください。

返り値:
この Collatorの現在の強さ特性
参照:
setStrength, PRIMARY, SECONDARY, TERTIARY, IDENTICAL
 o setStrength
  public synchronized void setStrength(int newStrength)
Collatorの強さ特性を返します。強さ特性によって、比較の際に相違とみなす最小レベルが決まります。使用例については、Collatorクラスの説明を参照してください。

パラメータ:
newStrength - 新しい強さ値
例外: IllegalArgumentException
新しい強さ値が PRIMARY、SECONDARY、TERTIARY、IDENTICALのいずれでもない場合
参照:
getStrength, PRIMARY, SECONDARY, TERTIARY, IDENTICAL
 o getDecomposition
  public synchronized int getDecomposition()
このCollatorの分解モードを入手します。分解モードによって、Unicodeで構成された文字をどのように処理するかが決まります。分解モードを調整すれば、速い照合動作と完全な照合動作の間で必要なものを選択することができます。

分解モードには次の 3つの値があります。

これらの意味については、これらの定数の説明を参照してください。

返り値:
分解モード
参照:
setDecomposition, NO_DECOMPOSITION, CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION
 o setDecomposition
  public synchronized void setDecomposition(int decompositionMode)
このCollatorの分解モードを設定します。分解モードの説明については、getDecompositionを参照してください。

パラメータ:
decompositionMode - 新しい分解モード
例外: IllegalArgumentException
指定する値が有効な分解モードでない場合
参照:
getDecomposition, NO_DECOMPOSITION, CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION
 o getAvailableLocales
  public static synchronized Locale[] getAvailableLocales()
Collatorが導入されているロケールセットを入手します。

返り値:
Collatorが導入されている使用可能なロケールのリスト
 o clone
  public Object clone()
Cloneableをオーバーライドします。

オーバーライド:
クラス Objectclone
 o equals
  public boolean equals(Object that)
2つのCollatorが等しいかどうかを比較します。

パラメータ:
that - これと比較する Collator
返り値:
この Collatorが指定する Collatorと等しければ、真、等しくなければ、偽が返されます。
オーバーライド:
クラス Objectequals
 o hashCode
  public abstract synchronized int hashCode()
この Collatorのハッシュコードを生成します。

オーバーライド:
クラス ObjecthashCode

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス