JavaTM 2 Platform
Std. Ed. v1.3

java.text
インタフェース CharacterIterator

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

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);
 }
 

関連項目:
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

public static final char DONE
反復子がテキストの終わりか始めに達したときに返される定数です。Unicode 2.0 標準によると、'\\uFFFF' は無効な Unicode 値であり、有効な Unicode 文字列で使用することはできません。
メソッドの詳細

first

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

last

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

current

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

next

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

previous

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

setIndex

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

getBeginIndex

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

getEndIndex

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

getIndex

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

clone

public Object clone()
反復子のコピーを作成します。
オーバーライド:
クラス Object 内の clone
戻り値:
この反復子のコピー

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.