| 
 | JavaTM 2 Platform Std. Ed. v1.4.0 | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object | +--java.text.Collator
Collator クラスは、ロケールに依存する String の比較を行います。このクラスを使って、自然言語テキストの検索とソートルーチンを構築します。
Collator は、抽象基底クラスです。サブクラスによって、特定の照合方法を実装します。現在では、1 つのサブクラス RuleBasedCollator が Java 2 プラットフォームで提供されており、広範囲の言語に適用可能です。さらに特殊な必要性がある場合には、ほかのサブクラスを作成できます。
ロケールに依存するほかのクラスと同じように、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 クラスでは、ほかの CollationKey とビット単位で比較できるように、String がビット列に変換されます。CollationKey は、その String の Collator オブジェクトによって作成されます。
注: 異なる Collator の CollationKey は比較できません。CollationKey を使用する例については、CollationKey のクラスの説明を参照してください。
RuleBasedCollator, 
CollationKey, 
CollationElementIterator, 
Locale| フィールドの概要 | |
| static int | CANONICAL_DECOMPOSITION分解モード値です。 | 
| static int | FULL_DECOMPOSITION分解モード値です。 | 
| static int | IDENTICALCollator の強さを示す値です。 | 
| static int | NO_DECOMPOSITION分解モード値です。 | 
| static int | PRIMARYCollator の強さを示す値です。 | 
| static int | SECONDARYCollator の強さを示す値です。 | 
| static int | TERTIARYCollator の強さを示す値です。 | 
| コンストラクタの概要 | |
| 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()Collator が導入されているロケールセットを取得します。 | 
| 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 の強さ属性を返します。 | 
| クラス java.lang.Object から継承したメソッド | 
| finalize, getClass, notify, notifyAll, toString, wait, wait, wait | 
| フィールドの詳細 | 
public static final int PRIMARY
setStrength(int), 
getStrength(), 
定数フィールド値public static final int SECONDARY
setStrength(int), 
getStrength(), 
定数フィールド値public static final int TERTIARY
setStrength(int), 
getStrength(), 
定数フィールド値public static final int IDENTICAL
public static final int NO_DECOMPOSITION
getDecomposition(), 
setDecomposition(int), 
定数フィールド値public static final int CANONICAL_DECOMPOSITION
CANONICAL_DECOMPOSITION は、「Unicode Technical Report #15」で説明されている Normalization Form D に相当します。
getDecomposition(), 
setDecomposition(int), 
定数フィールド値public static final int FULL_DECOMPOSITION
FULL_DECOMPOSITION は、「Unicode Technical Report #15」で説明されている Normalization Form KD に相当します。
getDecomposition(), 
setDecomposition(int), 
定数フィールド値| コンストラクタの詳細 | 
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) 
Comparator 内の compareo1 - 比較対象の最初のオブジェクトo2 - 比較対象の 2 番目のオブジェクト
ClassCastException - 引数を String にキャストできない場合Comparatorpublic 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, 
IDENTICALpublic void setStrength(int newStrength)
IllegalArgumentException - 新しい強さを示す値が PRIMARY、SECONDARY、TERTIARY、IDENTICAL のどれでもない場合getStrength(), 
PRIMARY, 
SECONDARY, 
TERTIARY, 
IDENTICALpublic int getDecomposition()
分解モードには次の 3 つの値があります。
setDecomposition(int), 
NO_DECOMPOSITION, 
CANONICAL_DECOMPOSITION, 
FULL_DECOMPOSITIONpublic void setDecomposition(int decompositionMode)
IllegalArgumentException - 指定された値が有効な分解モードでない場合getDecomposition(), 
NO_DECOMPOSITION, 
CANONICAL_DECOMPOSITION, 
FULL_DECOMPOSITIONpublic static Locale[] getAvailableLocales()
public Object clone()
Object 内の cloneCloneablepublic boolean equals(Object that)
Comparator 内の equalsObject 内の equalsthat - 比較対照の Collator
Object.equals(java.lang.Object), 
Object.hashCode()public abstract int hashCode()
Object 内の hashCodeObject.equals(java.lang.Object), 
Hashtable| 
 | JavaTM 2 Platform Std. Ed. v1.4.0 | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
 Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
 Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A.  All Rights Reserved.