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関数"äb" → 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
インスタンスとともにしか使用できません。
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成分を返します。
|
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, 2014, Oracle and/or its affiliates. All rights reserved.