public final class CollationElementIterator extends Object
CollationElementIterator
クラスは、多国語文字列の各文字を処理するときのイテレータとして使われます。イテレータは、位置付けされた文字の順序の優先順位を返すのに使用されます。順序の優先順位 (キーと呼ぶ) は、指定された照合オブジェクトにおいて、ある文字がどのように照合されるかを定義するものです。
スペイン語の例を示します。
さらに、ドイツ語の例を示します。"ca" -> the first key is key('c') and second key is key('a'). "cha" -> the first key is key('ch') and second key is key('a').
文字のキーは、第 1 順序 (short)、第 2 順序 (byte)、第 3 順序 (byte) からなる整数です。Java では、その基本データ型のサイズと符号の有無が厳密に定義されます。したがって、static 関数"aeb"-> the first key is key('a'), the second key is key('e'), and the third key is key('b').
primaryOrder
、secondaryOrder
、tertiaryOrder
は、キー値の正確性を確保するために、それぞれ int
、short
、short
を返します。
イテレータの使用例
String testString = "This is a test"; Collator col = Collator.getInstance(); if (col instanceof RuleBasedCollator) { RuleBasedCollator ruleBasedCollator = (RuleBasedCollator)col; CollationElementIterator collationElementIterator = ruleBasedCollator.getCollationElementIterator(testString); int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next()); : }
CollationElementIterator.next
は、次の文字の照合順序を返します。照合順序は、第 1 順序、第 2 順序、第 3 順序からなります。照合順序のデータ型は int です。照合順序の最初の 16 ビットがその第 1 順序、次の 8 ビットが第 2 順序、最後の 8 ビットが第 3 順序です。
注: CollationElementIterator
は RuleBasedCollator
実装の一部です。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 成分を返します。
|
public static final int NULLORDER
public void reset()
public int next()
このイテレータは、その文字列で作成された照合要素のシーケンス対して繰り返し処理を実行します。文字から照合要素への 1 対 1 のマッピングが必ずしも存在しないため、これは、「文字列の次の文字の照合要素 [順序の優先順位] を返す」こととは異なります。
この関数は、イテレータが現在示している照合要素を返してから、内部ポインタを更新して次の要素を示します。それに対して、previous() は最初にポインタを更新してから要素を返します。これは、繰り返し処理中に方向を変更する場合 (つまり、next() を呼び出してから previous() を呼び出すか、previous() を呼び出してから next() を呼び出す)、同じ要素を 2 回戻すことを意味します。
public int previous()
このイテレータは、その文字列で作成された照合要素のシーケンス対して繰り返し処理を実行します。文字から照合要素への 1 対 1 のマッピングが必ずしも存在しないため、これは、「文字列の 1 つ前の文字の照合要素 [順序の優先順位] を返す」こととは異なります。
この関数は、イテレータの内部ポインタを更新して現在示している照合要素の前の照合要素を示してから、要素を返します。それに対して、next() は現在の要素を返してからポインタを更新します。これは、繰り返し処理中に方向を変更する場合 (つまり、next() を呼び出してから previous() を呼び出すか、previous() を呼び出してから next() を呼び出す)、同じ要素を 2 回戻すことを意味します。
public static final int primaryOrder(int order)
order
- 照合要素public static final short secondaryOrder(int order)
order
- 照合要素public static final short tertiaryOrder(int order)
order
- 照合要素public void setOffset(int newOffset)
newOffset
- 元のテキストへの新しい文字オフセット。public int getOffset()
public int getMaxExpansion(int order)
order
- previous または next が返す照合順序。public void setText(String source)
source
- 新しいソーステキストpublic void setText(CharacterIterator source)
source
- 新しいソーステキスト。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.