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').
さらに、ドイツ語の例を示します。
"äb" → the first key is key('a'), the second key is key('e'), and
the third key is key('b').
文字のキーは、第1順序(short)、第2順序(byte)、第3順序(byte)からなる整数です。 Javaでは、その基本データ型のサイズと符号の有無が厳密に定義されます。 したがって、static関数primaryOrder、secondaryOrder、tertiaryOrderは、キー値の正確性を確保するために、それぞれint、short、shortを返します。
イテレータの使用例
String testString = "This is a test"; Collator col = Collator.getInstance(); if (col instanceof RuleBasedCollator ruleBasedCollator) { 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インスタンスとともにしか使用できません。
intgetMaxExpansion(int order) intintnext()intprevious()static final intprimaryOrder(int order) voidreset()static final shortsecondaryOrder(int order) voidsetOffset(int newOffset) voidvoidsetText(CharacterIterator source) static final shorttertiaryOrder(int order) clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
protected Objectclone()booleanprotected voidfinalize()final Class<?> getClass()Objectの実行時クラスを返します。inthashCode()final voidnotify()final voidtoString()final voidwait()final voidwait(long timeoutMillis) final voidwait(long timeoutMillis, int nanos) このイテレータは、その文字列で作成された照合要素のシーケンス対して繰返し処理を実行します。 文字から照合要素への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 - 新しいソース・テキスト。