- すべてのスーパー・インタフェース:
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
- 関連項目:
-
フィールドのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明clone()
イテレータのコピーを作成します。char
current()
現在位置(getIndex()によって返される位置)にある文字を取得します。char
first()
位置をgetBeginIndex()に設定して、その位置にある文字を返します。int
テキストの開始インデックスを返します。int
テキストの終了インデックスを返します。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
- 関連項目:
-
last
char last()位置をgetEndIndex()-1 (テキストが空の場合はgetEndIndex())に設定して、その位置にある文字を返します。- 戻り値:
- テキスト内の最後の文字。テキストが空の場合はDONE
- 関連項目:
-
current
char current()現在位置(getIndex()によって返される位置)にある文字を取得します。- 戻り値:
- 現在位置にある文字。現在位置がテキストの終わりを過ぎている場合はDONE
- 関連項目:
-
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()イテレータのコピーを作成します。- 戻り値:
- このイテレータのコピー
-