JavaTM 2 Platform
Standard Ed. 6

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

另請參見:
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()
          將迭代器的索引加一,並返回新索引處的字元。
 char previous()
          將迭代器的索引減一,並返回新索引處的字元。
 char setIndex(int position)
          將位置設置為文本中的指定位置,並返回該字元。
 

欄位詳細資訊

DONE

static final char DONE
當迭代器已到達文本末尾或開始處時返回的常數。其值為 '\\uFFFF',即不應該出現在任何有效 Unicode 字元串中的 "not a character" 值。

另請參見:
常數欄位值
方法詳細資訊

first

char first()
將位置設置為 getBeginIndex(),並返回該位置的字元。

返回:
文本中的第一個字元,如果文本為空,則返回 DONE
另請參見:
getBeginIndex()

last

char last()
將位置設置為 getEndIndex()-1(如果文本為空,則為 getEndIndex()),並返回該位置的字元。

返回:
文本中的最後一個字元,如果文本為空,則返回 DONE
另請參見:
getEndIndex()

current

char current()
獲取當前位置(由 getIndex() 返回)的字元。

返回:
當前位置的字元;如果當前位置已超出文本末尾,則返回 DONE。
另請參見:
getIndex()

next

char next()
將迭代器的索引加一,並返回新索引處的字元。如果得到的索引大於等於 getEndIndex(),則將當前索引重置為 getEndIndex(),並返回值 DONE。

返回:
新位置的索引;如果該新位置已超出文本範圍的末尾,則返回 DONE。

previous

char previous()
將迭代器的索引減一,並返回新索引處的字元。如果當前索引為 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()
創建此迭代器的一個副本

返回:
迭代器的副本

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only