- すべての実装されたインタフェース:
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オブジェクトによって作成されます。
- APIのノート:
- 異なる
CollatorのCollationKeyは比較できません。CollationKeyの使用例については、CollationKeyのクラスの説明を参照してください。 - 導入されたバージョン:
- 1.1
- 関連項目:
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final int分解モード値です。static final int分解モード値です。static final intCollatorの強さを示す値です。static final int分解モード値です。static final intCollatorの強さを示す値です。static final intCollatorの強さを示す値です。static final intCollatorの強さを示す値です。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明clone()Cloneableをオーバーライドします。int順序付けのために2つの引数を比較します。abstract intCollatorの照合ルールに従って、ソース文字列とターゲット文字列を比較します。boolean2つのCollatorが等しいかどうかを比較します。booleanCollatorの照合ルールに従って2つの文字列が等しいかどうかを比較するための簡易メソッドです。static Locale[]このクラスのgetInstanceメソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。abstract CollationKeygetCollationKey(String source) Stringを、ほかのCollationKeyとビット単位で比較可能なビット列に変換します。intCollatorの分解モードを取得します。static Collator現在のデフォルト・ロケールに対するCollatorを取得します。static CollatorgetInstance(Locale desiredLocale) 必要なロケールのCollatorを取得します。intCollatorの強さ属性を返します。abstract inthashCode()Collatorのハッシュ・コードを生成します。voidsetDecomposition(int decompositionMode) Collatorの分解モードを設定します。voidsetStrength(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 Standard Annex #15: Unicode正規化フォーム」で説明されている正規化フォームDに対応します。
- 外部仕様
- 関連項目:
-
FULL_DECOMPOSITION
public static final int FULL_DECOMPOSITION分解モード値です。 FULL_DECOMPOSITIONを設定すると、Unicode正規形式とUnicode互換形式が両方とも、照合のために分解されます。 この場合、アクセント付きの文字が照合されるだけでなく、特別な形式を持つ文字もその通常の形式で照合されます。 たとえば、半分幅と完全幅のASCII文字とカタカナ文字が一緒に照合されます。 FULL_DECOMPOSITIONはもっとも完全な方式で、もっとも遅い分解モードです。FULL_DECOMPOSITIONは、「Unicode Standard Annex #15: Unicode正規化フォーム」で説明されている正規化フォームKDに対応します。
- 外部仕様
- 関連項目:
-
-
コンストラクタの詳細
-
Collator
protected Collator()デフォルトのコンストラクタです。 このコンストラクタはprotectedなので、サブクラスからアクセスすることができます。 Collatorサブクラスを作成するには、ユーザーは一般にファクトリ・メソッドのgetInstanceを呼び出します。- 関連項目:
-
-
メソッドの詳細
-
getInstance
public static Collator getInstance()現在のデフォルト・ロケールに対するCollatorを取得します。 デフォルトのロケールは、Locale.getDefault()によって決定されます。- 戻り値:
- デフォルト・ロケールのCollator (たとえばen_US)。
- 関連項目:
-
getInstance
必要なロケールのCollatorを取得します。 目的のロケールに"ks"または"kk" 「Unicode照合設定」(あるいはその両方)がある場合、指定されたUnicode照合設定が次のマッピングに基づいて認識されると、このメソッドは、作成されたインスタンスでsetStrength(int)またはsetDecomposition(int)(あるいはその両方)をコールします:
アスタリスク(*)はデフォルト値を示します。 指定された設定値が認識されない場合、目的のロケールにBCP 47照合オプションがないかのように、強度または分解(あるいはその両方)がオーバーライドされません。強度 (ks)のBCP 47値 強度のためのコレータ定数 level1 PRIMARY level2 SECONDARY level3 TERTIARY* 同一性 IDENTICAL 正規化のBCP 47値 (kk) 分解のためのコレータ定数 true CANONICAL_DECOMPOSITION false NO_DECOMPOSITION* - APIのノート:
Collatorクラスの実装では、desiredLocaleの"co" 「Unicode照合識別子」に基づいて異なるインスタンスを生成できます。 たとえば、スウェーデンの従来のソートで'v'と'w'が同じソート順序を示すCollator.getInstance(Locale.forLanguageTag("sv-u-co-trad"));Collatorインスタンスを返し、"co"識別子のないスウェーデン語ロケールのCollatorインスタンスで'v'と'w'が区別されます。- パラメータ:
desiredLocale- 目的のロケール。- 戻り値:
- 必要なロケールのCollator。
- 外部仕様
- 関連項目:
-
compare
Collatorの照合ルールに従って、ソース文字列とターゲット文字列を比較します。 ソース文字列がターゲット文字列に対して小さいか、等しいか、大きいかによって、ゼロより小さいか、等しいか、大きい整数を返します。 使用例については、Collatorクラスの説明を参照してください。1回だけの比較であれば、このメソッドのパフォーマンスがもっとも優れています。 指定された文字列で複数回の比較が必要であれば、CollationKey.compareToのパフォーマンスがもっとも優れています。 CollationKeyの使用例については、Collatorクラスの説明を参照してください。
- パラメータ:
source- ソース文字列。target- ターゲット文字列。- 戻り値:
- 整数値。 ソースがターゲットより小さければ、値はゼロより小さい。ソースがターゲットと等しければ、値はゼロ。ソースがターゲットより大きければ、値はゼロより大きい。
- 関連項目:
-
compare
順序付けのために2つの引数を比較します。 最初の引数が2番目の引数より小さい場合は負の整数、両方が等しい場合は0、最初の引数が2番目の引数より大きい場合は正の整数を返します。この実装では、単に
compare((String)o1,(String)o2)が返されるだけです。- 定義:
compare、インタフェースComparator<Object>- パラメータ:
o1- 比較対象の最初のオブジェクト。o2- 比較対象の2番目のオブジェクト。- 戻り値:
- 最初の引数が2番目の引数より小さい場合は負の整数、両方が等しい場合は0、最初の引数が2番目の引数より大きい場合は正の整数。
- スロー:
ClassCastException- 引数をStringにキャストできない場合。- 導入されたバージョン:
- 1.2
- 関連項目:
-
getCollationKey
public abstract CollationKey getCollationKey(String source) Stringを、ほかのCollationKeyとビット単位で比較可能なビット列に変換します。 Stringで複数回の比較が必要な場合は、Collator.compareよりもCollationKeyのパフォーマンスの方が優れています。 CollationKeyの使用例については、Collatorクラスの説明を参照してください。- パラメータ:
source- 照合キーに変換する文字列。- 戻り値:
- Collatorの照合ルールに基づく、指定されたStringに対するCollationKey。 ソースStringがnullの場合はnullのCollationKeyが返される。
- 関連項目:
-
equals
Collatorの照合ルールに従って2つの文字列が等しいかどうかを比較するための簡易メソッドです。- パラメータ:
source- 比較対象のソース文字列。target- 比較対象のターゲット文字列。- 戻り値:
- 照合ルールに従ってそれらの文字列が等しい場合はtrue、そうでない場合はfalse。
- 関連項目:
-
getStrength
public int getStrength()Collatorの強さ属性を返します。 強さ属性によって、比較の際に相違とみなす最小レベルが決まります。 使用例については、Collatorクラスの説明を参照してください。- 戻り値:
- Collatorの現在の強さ属性。
- 関連項目:
-
setStrength
public void setStrength(int newStrength) Collatorの強さ属性を返します。 強さ属性によって、比較の際に相違とみなす最小レベルが決まります。 使用例については、Collatorクラスの説明を参照してください。- パラメータ:
newStrength- 強さ属性の新しい値。- スロー:
IllegalArgumentException- 新しい強さを示す値がPRIMARY、SECONDARY、TERTIARY、IDENTICALのどれでもない場合。- 関連項目:
-
getDecomposition
public int getDecomposition()Collatorの分解モードを取得します。 分解モードによって、Unicodeで構成された文字をどのように処理するかが決まります。 分解モードを調整すれば、速い照合動作と完全な照合動作の間で必要なものを選択することができます。分解モードには次の3つの値があります。
- NO_DECOMPOSITION
- CANONICAL_DECOMPOSITION
- FULL_DECOMPOSITION
- 戻り値:
- 分解モード
- 関連項目:
-
setDecomposition
public void setDecomposition(int decompositionMode) Collatorの分解モードを設定します。 分解モードの説明については、getDecompositionを参照してください。- パラメータ:
decompositionMode- 新しい分解モード。- スロー:
IllegalArgumentException- 指定された値が有効な分解モードでない場合。- 関連項目:
-
getAvailableLocales
public static Locale[] getAvailableLocales()このクラスのgetInstanceメソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。 返される配列は、JavaランタイムおよびインストールされているCollatorProvider実装によってサポートされているロケールの和集合を表します。 少なくとも、返される配列には、Locale.ROOTに等しいLocaleインスタンスと、Locale.USに等しいLocaleインスタンスが含まれている必要があります。- 戻り値:
- ローカライズされた
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
- 関連項目:
-
hashCode
public abstract int hashCode()Collatorのハッシュ・コードを生成します。
-