- すべての実装されたインタフェース:
Cloneable
,Comparator<Object>
- 直系の既知のサブクラス:
RuleBasedCollator
Collator
クラスでは、ロケールに依存したString
の比較が行われます。 このクラスを使って、自然言語テキストの検索とソートのルーチンを構築します。
Collator
は、抽象基底クラスです。 サブクラスによって、特定の照合方法を実装します。 現在では、1つのサブクラスRuleBasedCollator
がJavaプラットフォームで提供されており、広範囲の言語に適用可能です。 さらに特殊な必要性がある場合には、ほかのサブクラスを作成できます。
ロケールに依存するほかのクラスと同じように、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
の強さプロパティを設定すれば、比較で重要とみなされる相違レベルを決定できます。 4つのレベルPRIMARY
、SECONDARY
、TERTIARY
、IDENTICAL
があります。 言語機能への強みの正確な割り当ては、ロケールに依存します。 たとえば、チェコ語では、eとfは主要な(primary)相違とみなされますが、eとěは2次的(secondary)、eとEは3次的(tertiary)な相違とみなされ、eとeは同一(identical)とみなされます。 次の例は、米国英語で大文字と小文字の違いとアクセントを無視する方法を示したものです。
//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
を1回だけ比較する場合、compare
メソッドを使用すると最善のパフォーマンスが得られます。 一方、String
リストをソートする場合は通常、各String
を何回も比較しなければいけません。 そうした場合は、CollationKey
を使用したほうがよいパフォーマンスを得られます。 CollationKey
はString
をビット列に変換したものであり、ほかのCollationKey
とビット単位で比較できます。 CollationKey
は、特定のString
に対してCollator
オブジェクトによって作成されます。
ノート: 異なるCollator
によって作成されCollationKey
同士は比較できません。 CollationKey
の使用例については、CollationKey
のクラスの説明を参照してください。
- 導入されたバージョン:
- 1.1
- 関連項目:
RuleBasedCollator
,CollationKey
,CollationElementIterator
,Locale
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static int
分解モード値です。static int
分解モード値です。static int
Collatorの強さを示す値です。static int
分解モード値です。static int
Collatorの強さを示す値です。static int
Collatorの強さを示す値です。static int
Collatorの強さを示す値です。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明clone()
Cloneableをオーバーライドします。int
順序付けのために2つの引数を比較します。abstract int
Collatorの照合ルールに従って、ソース文字列とターゲット文字列を比較します。boolean
2つのCollatorが等しいかどうかを比較します。boolean
Collatorの照合ルールに従って2つの文字列が等しいかどうかを比較するための簡易メソッドです。static Locale[]
このクラスのgetInstance
メソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。abstract CollationKey
getCollationKey(String source)
Stringを、ほかのCollationKeyとビット単位で比較可能なビット列に変換します。int
Collatorの分解モードを取得します。static Collator
現在のデフォルト・ロケールに対するCollatorを取得します。static Collator
getInstance(Locale desiredLocale)
必要なロケールのCollatorを取得します。int
Collatorの強さ属性を返します。abstract int
hashCode()
Collatorのハッシュ・コードを生成します。void
setDecomposition(int decompositionMode)
Collatorの分解モードを設定します。void
setStrength(int newStrength)
Collatorの強さ属性を返します。インタフェース java.util.Comparatorで宣言されたメソッド
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
フィールド詳細
-
PRIMARY
public static final int PRIMARYCollatorの強さを示す値です。 これを設定すると、比較の際に、PRIMARYの相違だけが相違とみなされます。 言語機能への強みの割り当ては、ロケールに依存します。 共通の例としては、異なる基本文字(aとb)がPRIMARYの相違とみなされます。 -
SECONDARY
public static final int SECONDARYCollatorの強さを示す値です。 これを設定すると、比較の際に、SECONDARY以上の相違だけが相違とみなされます。 言語機能への強みの割り当ては、ロケールに依存します。 共通の例としては、同じ基本文字のアクセントが異なる形式(aとä)がSECONDARYの相違とみなされます。 -
TERTIARY
public static final int TERTIARYCollatorの強さを示す値です。 これを設定すると、比較の際に、TERTIARYの相違だけが相違とみなされます。 言語機能への強みの割り当ては、ロケールに依存します。 共通の例としては、ケースの違い(aとA)がTERTIARYの相違とみなされます。 -
IDENTICAL
public static final int IDENTICALCollatorの強さを示す値です。 これを設定すると、比較の際に、すべての相違が相違とみなされます。 言語機能への強みの割り当ては、ロケールに依存します。 共通の例としては、制御文字(\u0001と\u0002)がPRIMARY、SECONDARY、TERTIARYで等しいとみなされ、IDENTICALで相違とみなされます。 さらに、u00C0 (A-低アクセント記号)などの事前合成済みのアクセントとA\u0300 (A、結合低アクセント記号)などの結合アクセントの相違は、分解がNO_DECOMPOSITIONに設定されている場合にはIDENTICALで相違とみなされます。- 関連項目:
- 定数フィールド値
-
NO_DECOMPOSITION
public static final int NO_DECOMPOSITION分解モード値です。 NO_DECOMPOSITIONを設定すると、アクセントの付いた文字を照合のために分解することはしません。 これがデフォルトの設定であり、照合は最速ですが、アクセント記号を使わない言語の場合でしか正しい結果は得られません。 -
CANONICAL_DECOMPOSITION
public static final int CANONICAL_DECOMPOSITION分解モード値です。 CANONICAL_DECOMPOSITIONを設定すると、Unicode標準で正規の形式とされる文字は、照合のために分解されます。 アクセント付きの文字を正しく照合するには、これを使用する必要があります。CANONICAL_DECOMPOSITIONは、「Unicode Technical Report#15」で説明されているNormalization Form Dに相当します。
-
FULL_DECOMPOSITION
public static final int FULL_DECOMPOSITION分解モード値です。 FULL_DECOMPOSITIONを設定すると、Unicode正規形式とUnicode互換形式が両方とも、照合のために分解されます。 この場合、アクセント付きの文字が照合されるだけでなく、特別な形式を持つ文字もその通常の形式で照合されます。 たとえば、半分幅と完全幅のASCII文字とカタカナ文字が一緒に照合されます。 FULL_DECOMPOSITIONはもっとも完全な方式で、もっとも遅い分解モードです。FULL_DECOMPOSITIONは、「Unicode Technical Report#15」で説明されているNormalization Form KDに相当します。
-
-
コンストラクタの詳細
-
Collator
protected Collator()デフォルトのコンストラクタです。 このコンストラクタはprotectedなので、サブクラスからアクセスすることができます。 Collatorサブクラスを作成するには、ユーザーは一般にファクトリ・メソッドのgetInstanceを呼び出します。- 関連項目:
getInstance()
-
-
メソッドの詳細
-
getInstance
public static Collator getInstance()現在のデフォルト・ロケールに対するCollatorを取得します。 デフォルト・ロケールは、java.util.Locale.getDefaultによって判定することができます。- 戻り値:
- デフォルト・ロケールのCollator (たとえばen_US)。
- 関連項目:
Locale.getDefault()
-
getInstance
必要なロケールのCollatorを取得します。- パラメータ:
desiredLocale
- 目的のロケール。- 戻り値:
- 必要なロケールのCollator。
- 関連項目:
Locale
,ResourceBundle
-
compare
Collatorの照合ルールに従って、ソース文字列とターゲット文字列を比較します。 ソース文字列がターゲット文字列に対して小さいか、等しいか、大きいかによって、ゼロより小さいか、等しいか、大きい整数を返します。 使用例については、Collatorクラスの説明を参照してください。1回だけの比較であれば、このメソッドのパフォーマンスがもっとも優れています。 指定された文字列で複数回の比較が必要であれば、CollationKey.compareToのパフォーマンスがもっとも優れています。 CollationKeyの使用例については、Collatorクラスの説明を参照してください。
- パラメータ:
source
- ソース文字列。target
- ターゲット文字列。- 戻り値:
- 整数値。 ソースがターゲットより小さければ、値はゼロより小さい。ソースがターゲットと等しければ、値はゼロ。ソースがターゲットより大きければ、値はゼロより大きい。
- 関連項目:
CollationKey
、getCollationKey(java.lang.String)
-
compare
順序付けのために2つの引数を比較します。 最初の引数が2番目の引数より小さい場合は負の整数、両方が等しい場合は0、最初の引数が2番目の引数より大きい場合は正の整数を返します。この実装では、単に
compare((String)o1,(String)o2)
が返されるだけです。- 定義:
compare
、インタフェース:Comparator<Object>
- パラメータ:
o1
- 比較対象の最初のオブジェクト。o2
- 比較対象の2番目のオブジェクト。- 戻り値:
- 最初の引数が2番目の引数より小さい場合は負の整数、両方が等しい場合は0、最初の引数が2番目の引数より大きい場合は正の整数。
- 例外:
ClassCastException
- 引数をStringにキャストできない場合。- 導入されたバージョン:
- 1.2
- 関連項目:
Comparator
-
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(java.lang.String, java.lang.String)
-
equals
Collatorの照合ルールに従って2つの文字列が等しいかどうかを比較するための簡易メソッドです。- パラメータ:
source
- 比較対象のソース文字列。target
- 比較対象のターゲット文字列。- 戻り値:
- 照合ルールに従ってそれらの文字列が等しい場合はtrue、そうでない場合はfalse。
- 関連項目:
compare(java.lang.String, java.lang.String)
-
getStrength
public int getStrength()Collatorの強さ属性を返します。 強さ属性によって、比較の際に相違とみなす最小レベルが決まります。 使用例については、Collatorクラスの説明を参照してください。- 戻り値:
- Collatorの現在の強さ属性。
- 関連項目:
setStrength(int)
,PRIMARY
,SECONDARY
,TERTIARY
,IDENTICAL
-
setStrength
public void setStrength(int newStrength)Collatorの強さ属性を返します。 強さ属性によって、比較の際に相違とみなす最小レベルが決まります。 使用例については、Collatorクラスの説明を参照してください。- パラメータ:
newStrength
- 強さ属性の新しい値。- 例外:
IllegalArgumentException
- 新しい強さを示す値がPRIMARY、SECONDARY、TERTIARY、IDENTICALのどれでもない場合。- 関連項目:
getStrength()
,PRIMARY
,SECONDARY
,TERTIARY
,IDENTICAL
-
getDecomposition
public int getDecomposition()Collatorの分解モードを取得します。 分解モードによって、Unicodeで構成された文字をどのように処理するかが決まります。 分解モードを調整すれば、速い照合動作と完全な照合動作の間で必要なものを選択することができます。分解モードには次の3つの値があります。
- NO_DECOMPOSITION
- CANONICAL_DECOMPOSITION
- FULL_DECOMPOSITION
- 戻り値:
- 分解モード
- 関連項目:
setDecomposition(int)
,NO_DECOMPOSITION
,CANONICAL_DECOMPOSITION
,FULL_DECOMPOSITION
-
setDecomposition
public void setDecomposition(int decompositionMode)Collatorの分解モードを設定します。 分解モードの説明については、getDecompositionを参照してください。- パラメータ:
decompositionMode
- 新しい分解モード。- 例外:
IllegalArgumentException
- 指定された値が有効な分解モードでない場合。- 関連項目:
getDecomposition()
,NO_DECOMPOSITION
,CANONICAL_DECOMPOSITION
,FULL_DECOMPOSITION
-
getAvailableLocales
public static Locale[] getAvailableLocales()このクラスのgetInstance
メソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。 返される配列は、JavaランタイムおよびインストールされているCollatorProvider
実装によってサポートされているロケールの和集合を表します。 これには、Locale.US
と等価なLocaleインスタンスが少なくとも1つ含まれている必要があります。- 戻り値:
- ローカライズされた
Collator
インスタンスを使用可能なロケールの配列。
-
clone
public Object clone()Cloneableをオーバーライドします。 -
equals
public boolean equals(Object that)2つのCollatorが等しいかどうかを比較します。- 定義:
equals
、インタフェース:Comparator<Object>
- オーバーライド:
equals
、クラス:Object
- パラメータ:
that
- 比較対照のCollator。- 戻り値:
- このCollatorが指定されたCollatorと等しい場合はtrue、そうでない場合はfalse
- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public abstract int hashCode()Collatorのハッシュ・コードを生成します。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-