primaryOrder
- パラメータ:
order
- 照合要素- 戻り値:
- 要素の第1成分
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
インスタンスとともにしか使用できません。
int
getMaxExpansion(int order)
int
int
next()
int
previous()
static final int
primaryOrder(int order)
void
reset()
static final short
secondaryOrder(int order)
void
setOffset(int newOffset)
void
void
setText(CharacterIterator source)
static final short
tertiaryOrder(int order)
このイテレータは、その文字列で作成された照合要素のシーケンス対して繰返し処理を実行します。 文字から照合要素への1対1のマッピングが必ずしも存在しないため、これは、「文字列の次の文字の照合要素[順序の優先順位]を返す」こととは異なります。
この関数は、イテレータが現在示している照合要素を返してから、内部ポインタを更新して次の要素を示します。それに対して、previous()は最初にポインタを更新してから要素を返します。 これは、繰返し処理中に方向を変更する場合(つまり、next()を呼び出してからprevious()を呼び出すか、previous()を呼び出してからnext()を呼び出す)、同じ要素を2回戻すことを意味します。
このイテレータは、その文字列で作成された照合要素のシーケンス対して繰返し処理を実行します。 文字から照合要素への1対1のマッピングが必ずしも存在しないため、これは、「文字列の1つ前の文字の照合要素[順序の優先順位]を返す」こととは異なります。
この関数は、イテレータの内部ポインタを更新して現在示している照合要素の前の照合要素を示してから、要素を返します。それに対して、next()は現在の要素を返してからポインタを更新します。 これは、繰返し処理中に方向を変更する場合(つまり、next()を呼び出してからprevious()を呼び出すか、previous()を呼び出してからnext()を呼び出す)、同じ要素を2回戻すことを意味します。
order
- 照合要素order
- 照合要素order
- 照合要素newOffset
- 元のテキストへの新しい文字オフセット。order
- previousまたはnextが返す照合順序。source
- 新しいソース・テキストsource
- 新しいソース・テキスト。