JavaTM 2
Platform
Std. Ed. v1.4.0

java.text
クラス CollationElementIterator

java.lang.Object
  |
  +--java.text.CollationElementIterator

public final class CollationElementIterator
extends Object

CollationElementIterator クラスは、各国語文字列の各文字を処理するときの反復子として使用します。反復子は、位置付けされた文字の順序の優先順位を返すのに使用されます。順序の優先順位 (キーと呼ぶ) は、指定された照合オブジェクトにおいて、ある文字がどのように照合されるかを定義するものです。

スペイン語の例を示します。

 "ca" -> 最初のキーは ('c')、2 番目のキーは ('a') です。
 "cha" -> 最初のキーは ('ch')、2 番目のキーは ('a') です。
 
さらに、ドイツ語の例を示します。
 "äb" -> 最初のキーは ('a')、2 番目のキーは ('e')、
 3 番目のキーは ('b') です。
文字のキーは、第 1 順序 (short)、第 2 順序 (byte)、第 3 順序 (byte) からなる整数です。Java では、その基本データ型のサイズと符号の有無が厳密に定義されます。したがって、static 関数 primaryOrdersecondaryOrdertertiaryOrder は、キー値の正確性を確保するために、それぞれ intshortshort を返します。

反復子の使用例


  String testString = "This is a test";
  RuleBasedCollator ruleBasedCollator = (RuleBasedCollator)Collator.getInstance();
  CollationElementIterator collationElementIterator = ruleBasedCollator.getCollationElementIterator(testString);
  int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next());
 

CollationElementIterator.next は、次の文字の照合順序を返します。照合順序は、第 1 順序、第 2 順序、第 3 順序からなります。照合順序のデータ型は int です。照合順序の最初の 16 ビットがその第 1 順序、次の 8 ビットが第 2 順序、最後の 8 ビットが第 3 順序です。

関連項目:
Collator, RuleBasedCollator

フィールドの概要
static int NULLORDER
          カーソルが文字列の終わりに達したことを示す null 順序です。
 
メソッドの概要
 int getMaxExpansion(int order)
          指定された比較順序で終わるすべての展開シーケンスの最大長を返します。
 int getOffset()
          次の照合要素に対応する元のテキスト内の文字オフセットを返します。
 int next()
          文字列の次の照合要素を取得します。
 int previous()
          文字列の前の照合要素を取得します。
static int primaryOrder(int order)
          照合要素の第 1 成分を返します。
 void reset()
          カーソルを文字列の先頭にリセットします。
static short secondaryOrder(int order)
          照合要素の第 2 成分を返します。
 void setOffset(int newOffset)
          反復子が指定された文字に対応する照合要素を示すように設定します。
 void setText(CharacterIterator source)
          繰り返し処理の対象となる新しい文字列を設定します。
 void setText(String source)
          繰り返し処理の対象となる新しい文字列を設定します。
static short tertiaryOrder(int order)
          照合要素の第 3 成分を返します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

NULLORDER

public static final int NULLORDER
カーソルが文字列の終わりに達したことを示す null 順序です。

関連項目:
定数フィールド値
メソッドの詳細

reset

public void reset()
カーソルを文字列の先頭にリセットします。next() を次に呼び出すと、文字列の最初の照合要素が返されます。


next

public int next()
文字列の次の照合要素を取得します。

この反復子は、その文字列で作成された照合要素のシーケンス対して繰り返し処理を実行します。文字から照合要素への 1 対 1 のマッピングが必ずしも存在しないため、これは、「文字列の次の文字の照合要素 [順序の優先順位] を返す」こととは異なります。

この関数は、反復子が現在示している照合要素を返してから、内部ポインタを更新して次の要素を示します。それに対して、previous() は最初にポインタを更新してから要素を返します。これは、繰り返し処理中に方向を変更すると (つまり、next() を呼び出してから previous() を呼び出すか、previous() を呼び出してから next() を呼び出す)、同じ要素を 2 回戻すことを意味します。


previous

public int previous()
文字列の前の照合要素を取得します。

この反復子は、その文字列で作成された照合要素シーケンスに対して繰り返し処理を実行します。文字から照合要素への 1 対 1 のマッピングが必ずしも存在しないため、これは、「文字列の前の文字の照合要素 [順序の優先順位] を返す」こととは異なります。

この関数は、反復子の内部ポインタを更新して現在示している照合要素の前の照合要素を示してから、要素を返します。それに対して、next() は現在の要素を返してからポインタを更新します。これは、繰り返し処理中に方向を変更する場合 (つまり、next() を呼び出してから previous() を呼び出すか、previous() を呼び出してから next() を呼び出す)、同じ要素を 2 回戻すことを意味します。


primaryOrder

public static final int primaryOrder(int order)
照合要素の第 1 成分を返します。

パラメータ:
order - 照合要素
戻り値:
要素の第 1 成分

secondaryOrder

public static final short secondaryOrder(int order)
照合要素の第 2 成分を返します。

パラメータ:
order - 照合要素
戻り値:
要素の第 2 成分

tertiaryOrder

public static final short tertiaryOrder(int order)
照合要素の第 3 成分を返します。

パラメータ:
order - 照合要素
戻り値:
要素の第 3 成分

setOffset

public void setOffset(int newOffset)
反復子が指定された文字に対応する照合要素を示すように設定します。パラメータは、元の文字列の文字オフセットであり、照合要素の対応するシーケンスへのオフセットではありません。next() の次の呼び出しで返される値は、テキスト内の指定された位置に対応する照合要素になります。その位置が縮小文字シーケンスの中にある場合、next() を次に呼び出した結果は、そのシーケンスの照合要素になります。つまり、getOffset() は、setOffset() を前に呼び出しときに渡された値と同じ値を返さない場合があります。

パラメータ:
newOffset - 元のテキストへの新しい文字オフセット

getOffset

public int getOffset()
次の照合要素に対応する元のテキスト内の文字オフセットを返します。つまり、getOffset() は、next() の次の呼び出しで返される照合要素に対応するテキスト内の位置を返します。この値は常に照合要素に対応する最初の文字のインデックスになります (2 つ以上のすべての文字が同じ照合要素に対応する場合は縮小文字シーケンス)。つまり、setOffset(x) の直後に getOffset() を実行すると、getOffset() は x を返さない場合もあります。

戻り値:
next() の次の呼び出しで返される照合要素に対応する元のテキスト内の文字オフセット

getMaxExpansion

public int getMaxExpansion(int order)
指定された比較順序で終わるすべての展開シーケンスの最大長を返します。

パラメータ:
order - previous または next が返す照合順序
戻り値:
指定された順序で終わるすべての展開シーケンスの最大長

setText

public void setText(String source)
繰り返し処理の対象となる新しい文字列を設定します。


setText

public void setText(CharacterIterator source)
繰り返し処理の対象となる新しい文字列を設定します。


JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

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.