- すべてのスーパー・インタフェース:
- Cloneable
- 既知のすべてのサブインタフェース:
- AttributedCharacterIterator
- 既知のすべての実装クラス:
- Segment,- StringCharacterIterator
public interface CharacterIterator extends Cloneable
このインタフェースは、テキストにおける双方向の反復のプロトコルを定義します。 イテレータは、結合された文字シーケンスにおいて反復します。 文字は、getBeginIndex()で返される値で始まり、getEndIndex()-1で返される値まで続く値を使ってインデックス処理されます。 
 
 テキストを終わりから始めの方向へ逆方向にたどります。
 
 指定されたテキストの位置から前方向と逆方向の両方へたどります。 この例でのnotBoundary()の呼出しは、その他の停止基準を表しています。 
 
イテレータは、有効範囲が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);
    }
}
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
- 関連項目:
- 
フィールドのサマリーフィールド
- 
メソッドのサマリー修飾子と型メソッド説明clone()イテレータのコピーを作成します。charcurrent()現在位置(getIndex()によって返される位置)にある文字を取得します。charfirst()位置をgetBeginIndex()に設定して、その位置にある文字を返します。intテキストの開始インデックスを返します。intテキストの終了インデックスを返します。intgetIndex()現在のインデックスを返します。charlast()位置をgetEndIndex()-1 (テキストが空の場合はgetEndIndex())に設定して、その位置にある文字を返します。charnext()イテレータのインデックスを1増やし、新しいインデックスにある文字を返します。charprevious()イテレータのインデックスを1減らし、新しいインデックスにある文字を返します。charsetIndex(int position) 位置を指定されたテキストの位置に設定して、その文字を返します。
- 
フィールド詳細- 
DONEstatic final char DONEイテレータがテキストの終わりか始めに達したときに返される定数です。 値は'\uFFFF'であり、有効なUnicode文字列で使用できない「文字でない」値です。- 関連項目:
 
 
- 
- 
メソッドの詳細- 
firstchar first()位置をgetBeginIndex()に設定して、その位置にある文字を返します。- 戻り値:
- テキスト内の先頭文字。テキストが空の場合はDONE
- 関連項目:
 
- 
lastchar last()位置をgetEndIndex()-1 (テキストが空の場合はgetEndIndex())に設定して、その位置にある文字を返します。- 戻り値:
- テキスト内の最後の文字。テキストが空の場合はDONE
- 関連項目:
 
- 
currentchar current()現在位置(getIndex()によって返される位置)にある文字を取得します。- 戻り値:
- 現在位置にある文字。現在位置がテキストの終わりを過ぎている場合はDONE
- 関連項目:
 
- 
nextchar next()イテレータのインデックスを1増やし、新しいインデックスにある文字を返します。 結果のインデックスがgetEndIndex()より大きいか、それに等しい場合、現在のインデックスがgetEndIndex()にリセットされ、値DONEが返されます。- 戻り値:
- 新しい位置にある文字。新しい位置がテキスト範囲の終わりを過ぎている場合はDONE
 
- 
previouschar previous()イテレータのインデックスを1減らし、新しいインデックスにある文字を返します。 現在のインデックスがgetBeginIndex()の場合、インデックスはgetBeginIndex()のまま変わらず、値DONEが返されます。- 戻り値:
- 新しい位置にある文字。現在の位置がgetBeginIndex()に等しい場合はDONE
 
- 
setIndexchar setIndex(int position) 位置を指定されたテキストの位置に設定して、その文字を返します。- パラメータ:
- position- テキスト内の位置。 有効な値は、getBeginIndex()からgetEndIndex()。 無効な値を指定すると、IllegalArgumentExceptionがスローされる。
- 戻り値:
- 指定された位置にある文字。指定された位置がgetEndIndex()に等しい場合はDONE
 
- 
getBeginIndexint getBeginIndex()テキストの開始インデックスを返します。- 戻り値:
- テキストが始まる位置のインデックス。
 
- 
getEndIndexint getEndIndex()テキストの終了インデックスを返します。 このインデックスは、テキストの終わりの次の文字のインデックスです。- 戻り値:
- テキスト内の最後の文字の次のインデックス
 
- 
getIndexint getIndex()現在のインデックスを返します。- 戻り値:
- 現在のインデックス。
 
- 
clone
 
-