- すべての実装されたインタフェース:
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 int
Collatorの強さを示す値です。static final int
分解モード値です。static final int
Collatorの強さを示す値です。static final int
Collatorの強さを示す値です。static final 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 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)(あるいはその両方)をコールします:強度 (ks)のBCP 47値 強度のためのコレータ定数 level1 PRIMARY level2 SECONDARY level3 TERTIARY* 同一性 IDENTICAL 正規化のBCP 47値 (kk) 分解のためのコレータ定数 true CANONICAL_DECOMPOSITION false NO_DECOMPOSITION* - APIのノート:
Collator
クラスの実装では、desiredLocale
の"co
" 「Unicode照合識別子」に基づいて異なるインスタンスを生成できます。 たとえば、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
-
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
-
equals
-
hashCode
-