|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
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 |
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()
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 DC に相当します。
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 内の compareClassCastException - 引数を 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)
the - 新しい強さを示す値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)
the - 新しい分解モードIllegalArgumentException - 指定された値が有効な分解モードでない場合getDecomposition(),
NO_DECOMPOSITION,
CANONICAL_DECOMPOSITION,
FULL_DECOMPOSITIONpublic static Locale[] getAvailableLocales()
public Object clone()
Object 内の clonejava.lang.Object からコピーされたタグ:CloneNotSupportedException - オブジェクトのクラスが Cloneable インタフェースをサポートしていない場合。clone メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがあるOutOfMemoryError - 十分なメモリがない場合Cloneablepublic boolean equals(Object that)
Comparator 内の equalsObject 内の equalsthat - 比較対照の Collatorpublic abstract int hashCode()
Object 内の hashCodejava.lang.Object からコピーされたタグ:Object.equals(java.lang.Object),
Hashtable
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.