モジュール java.base
パッケージ java.text

インタフェースCharacterIterator

すべてのスーパー・インタフェース:
Cloneable
既知のすべてのサブインタフェース:
AttributedCharacterIterator
既知のすべての実装クラス:
Segment, StringCharacterIterator

public interface CharacterIterator extends Cloneable
このインタフェースは、テキストにおける双方向の反復のプロトコルを定義します。 イテレータは、結合された文字シーケンスにおいて反復します。 文字は、getBeginIndex()で返される値で始まり、getEndIndex()-1で返される値まで続く値を使ってインデックス処理されます。

イテレータは、有効範囲がgetBeginIndex()からgetEndIndex()の現在の文字インデックスを維持します。値getEndIndex()が含まれているのは、ゼロ長のテキスト範囲の操作を可能にするためと、歴史的な理由によります。 現在のインデックスは、getIndex()を呼び出すことによって検索でき、setIndex()、first()、およびlast()を呼び出すことによって直接設定できます。

previous()メソッドとnext()メソッドは繰返し処理に使用されます。 これらのメソッドは、getBeginIndex()からgetEndIndex() -1の範囲から外れるように動くと、DONEを返すことにより、イテレータがシーケンスの終わりに達したことを示します。 また、ほかのメソッドからDONEが返された場合は、現在のインデックスがこの範囲外にあることを示します。

テキストの始めから終わりの方向へたどります。

public void traverseForward(CharacterIterator iter) {
    for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
        processChar(c);
    }
}
テキストを終わりから始めの方向へ逆方向にたどります。
public void traverseBackward(CharacterIterator iter) {
    for (char c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
        processChar(c);
    }
}
指定されたテキストの位置から前方向と逆方向の両方へたどります。 この例でのnotBoundary()の呼出しは、その他の停止基準を表しています。
public void traverseOut(CharacterIterator iter, int pos) {
    for (char c = iter.setIndex(pos);
             c != CharacterIterator.DONE && notBoundary(c);
             c = iter.next()) {
    }
    int end = iter.getIndex();
    for (char c = iter.setIndex(pos);
            c != CharacterIterator.DONE && notBoundary(c);
            c = iter.previous()) {
    }
    int start = iter.getIndex();
    processSection(start, end);
}

導入されたバージョン:
1.1
関連項目: