public abstract class Collator extends Object implements Comparator<Object>, Cloneable
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
のクラスの説明を参照してください。
修飾子と型 | フィールドと説明 |
---|---|
static int |
CANONICAL_DECOMPOSITION
分解モード値です。
|
static int |
FULL_DECOMPOSITION
分解モード値です。
|
static int |
IDENTICAL
Collatorの強さを示す値です。
|
static int |
NO_DECOMPOSITION
分解モード値です。
|
static int |
PRIMARY
Collatorの強さを示す値です。
|
static int |
SECONDARY
Collatorの強さを示す値です。
|
static int |
TERTIARY
Collatorの強さを示す値です。
|
修飾子 | コンストラクタと説明 |
---|---|
protected |
Collator()
デフォルトのコンストラクタです。
|
修飾子と型 | メソッドと説明 |
---|---|
Object |
clone()
Cloneableをオーバーライドします。
|
int |
compare(Object o1, Object o2)
順序付けのために2つの引数を比較します。
|
abstract int |
compare(String source, String target)
Collatorの照合ルールに従って、ソース文字列とターゲット文字列を比較します。
|
boolean |
equals(Object that)
2つのCollatorが等しいかどうかを比較します。
|
boolean |
equals(String source, String target)
Collatorの照合ルールに従って2つの文字列が等しいかどうかを比較するための簡易メソッドです。
|
static Locale[] |
getAvailableLocales()
このクラスの
getInstance メソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。 |
abstract CollationKey |
getCollationKey(String source)
Stringを、ほかのCollationKeyとビット単位で比較可能なビット列に変換します。
|
int |
getDecomposition()
Collatorの分解モードを取得します。
|
static Collator |
getInstance()
現在のデフォルト・ロケールに対するCollatorを取得します。
|
static Collator |
getInstance(Locale desiredLocale)
必要なロケールのCollatorを取得します。
|
int |
getStrength()
Collatorの強さ属性を返します。
|
abstract int |
hashCode()
Collatorのハッシュ・コードを生成します。
|
void |
setDecomposition(int decompositionMode)
Collatorの分解モードを設定します。
|
void |
setStrength(int newStrength)
Collatorの強さ属性を返します。
|
public static final int PRIMARY
public static final int SECONDARY
public static final int TERTIARY
public static final int IDENTICAL
public static final int NO_DECOMPOSITION
public static final int CANONICAL_DECOMPOSITION
CANONICAL_DECOMPOSITIONは、「Unicode Technical Report#15」で説明されているNormalization Form Dに相当します。
public static final int FULL_DECOMPOSITION
FULL_DECOMPOSITIONは、「Unicode Technical Report#15」で説明されているNormalization Form KDに相当します。
protected Collator()
getInstance()
public static Collator getInstance()
Locale.getDefault()
public static Collator getInstance(Locale desiredLocale)
desiredLocale
- 目的のロケール。Locale
, ResourceBundle
public abstract int compare(String source, String target)
1回だけの比較であれば、このメソッドのパフォーマンスがもっとも優れています。指定された文字列で複数回の比較が必要であれば、CollationKey.compareToのパフォーマンスがもっとも優れています。CollationKeyの使用例については、Collatorクラスの説明を参照してください。
source
- ソース文字列。target
- ターゲット文字列。CollationKey
、getCollationKey(java.lang.String)
public int compare(Object o1, Object o2)
この実装では、単に compare((String)o1,(String)o2)
が返されるだけです。
compare
、インタフェース: Comparator<Object>
o1
- 比較対象の最初のオブジェクト。o2
- 比較対象の2番目のオブジェクト。ClassCastException
- 引数をStringにキャストできない場合。Comparator
public abstract CollationKey getCollationKey(String source)
source
- 照合キーに変換する文字列。CollationKey
、compare(java.lang.String, java.lang.String)
public boolean equals(String source, String target)
source
- 比較対象のソース文字列。target
- 比較対象のターゲット文字列。compare(java.lang.String, java.lang.String)
public int getStrength()
setStrength(int)
, PRIMARY
, SECONDARY
, TERTIARY
, IDENTICAL
public void setStrength(int newStrength)
newStrength
- 強さ属性の新しい値。IllegalArgumentException
- 新しい強さを示す値がPRIMARY、SECONDARY、TERTIARY、IDENTICALのどれでもない場合。getStrength()
, PRIMARY
, SECONDARY
, TERTIARY
, IDENTICAL
public int getDecomposition()
分解モードには次の3つの値があります。
setDecomposition(int)
, NO_DECOMPOSITION
, CANONICAL_DECOMPOSITION
, FULL_DECOMPOSITION
public void setDecomposition(int decompositionMode)
decompositionMode
- 新しい分解モード。IllegalArgumentException
- 指定された値が有効な分解モードでない場合。getDecomposition()
, NO_DECOMPOSITION
, CANONICAL_DECOMPOSITION
, FULL_DECOMPOSITION
public static Locale[] getAvailableLocales()
getInstance
メソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。返される配列は、JavaランタイムおよびインストールされているCollatorProvider
実装によってサポートされているロケールの和集合を表します。これには、Locale.US
と等価なLocaleインスタンスが少なくとも1つ含まれている必要があります。Collator
インスタンスを使用可能なロケールの配列。public Object clone()
public boolean equals(Object that)
equals
、インタフェース: Comparator<Object>
equals
、クラス: Object
that
- 比較対照のCollator。Object.hashCode()
、HashMap
public abstract int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.