モジュール 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
関連項目:
StringCharacterIterator, AttributedCharacterIterator
  • フィールドのサマリー

    フィールド 
    修飾子と型 フィールド 説明
    static char DONE
    イテレータがテキストの終わりか始めに達したときに返される定数です。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    Object clone()
    イテレータのコピーを作成します。
    char current()
    現在位置(getIndex()によって返される位置)にある文字を取得します。
    char first()
    位置をgetBeginIndex()に設定して、その位置にある文字を返します。
    int getBeginIndex()
    テキストの開始インデックスを返します。
    int getEndIndex()
    テキストの終了インデックスを返します。
    int getIndex()
    現在のインデックスを返します。
    char last()
    位置をgetEndIndex()-1 (テキストが空の場合はgetEndIndex())に設定して、その位置にある文字を返します。
    char next()
    イテレータのインデックスを1増やし、新しいインデックスにある文字を返します。
    char previous()
    イテレータのインデックスを1減らし、新しいインデックスにある文字を返します。
    char setIndex​(int position)
    位置を指定されたテキストの位置に設定して、その文字を返します。
  • フィールド詳細

    • DONE

      static final char DONE
      イテレータがテキストの終わりか始めに達したときに返される定数です。 値は'\uFFFF'であり、有効なUnicode文字列で使用できない「文字でない」値です。
      関連項目:
      定数フィールド値
  • メソッドの詳細

    • first

      char first()
      位置をgetBeginIndex()に設定して、その位置にある文字を返します。
      戻り値:
      テキスト内の先頭文字。テキストが空の場合はDONE
      関連項目:
      getBeginIndex()
    • last

      char last()
      位置をgetEndIndex()-1 (テキストが空の場合はgetEndIndex())に設定して、その位置にある文字を返します。
      戻り値:
      テキスト内の最後の文字。テキストが空の場合はDONE
      関連項目:
      getEndIndex()
    • current

      char current()
      現在位置(getIndex()によって返される位置)にある文字を取得します。
      戻り値:
      現在位置にある文字。現在位置がテキストの終わりを過ぎている場合はDONE
      関連項目:
      getIndex()
    • next

      char next()
      イテレータのインデックスを1増やし、新しいインデックスにある文字を返します。 結果のインデックスがgetEndIndex()より大きいか、それに等しい場合、現在のインデックスがgetEndIndex()にリセットされ、値DONEが返されます。
      戻り値:
      新しい位置にある文字。新しい位置がテキスト範囲の終わりを過ぎている場合はDONE
    • previous

      char previous()
      イテレータのインデックスを1減らし、新しいインデックスにある文字を返します。 現在のインデックスがgetBeginIndex()の場合、インデックスはgetBeginIndex()のまま変わらず、値DONEが返されます。
      戻り値:
      新しい位置にある文字。現在の位置がgetBeginIndex()に等しい場合はDONE
    • setIndex

      char setIndex​(int position)
      位置を指定されたテキストの位置に設定して、その文字を返します。
      パラメータ:
      position - テキスト内の位置。 有効な値は、getBeginIndex()からgetEndIndex()。 無効な値を指定すると、IllegalArgumentExceptionがスローされる。
      戻り値:
      指定された位置にある文字。指定された位置がgetEndIndex()に等しい場合はDONE
    • getBeginIndex

      int getBeginIndex()
      テキストの開始インデックスを返します。
      戻り値:
      テキストが始まる位置のインデックス。
    • getEndIndex

      int getEndIndex()
      テキストの終了インデックスを返します。 このインデックスは、テキストの終わりの次の文字のインデックスです。
      戻り値:
      テキスト内の最後の文字の次のインデックス
    • getIndex

      int getIndex()
      現在のインデックスを返します。
      戻り値:
      現在のインデックス。
    • clone

      Object clone()
      イテレータのコピーを作成します。
      戻り値:
      このイテレータのコピー