Most visited

Recently visited

Added in API level 1

CharacterIterator

public interface CharacterIterator
implements Cloneable

java.text.CharacterIterator
Known Indirect Subclasses


该接口定义了一个用于文本双向迭代的协议。 迭代器迭代有限的字符序列。 字符使用从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);
     }
 }
 
Traverse the text backwards, from end to start
 public void traverseBackward(CharacterIterator iter) {
     for(char c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
         processChar(c);
     }
 }
 
Traverse both forward and backward from a given position in the text. Calls to notBoundary() in this example represents some additional stopping criteria.
 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);
 }
 

也可以看看:

Summary

Constants

char DONE

当迭代器到达文本的结尾或开始时返回的常量。

Public methods

abstract Object clone()

创建此迭代器的副本

abstract char current()

获取当前位置的字符(由getIndex()返回)。

abstract char first()

将位置设置为getBeginIndex()并返回该位置处的字符。

abstract int getBeginIndex()

返回文本的开始索引。

abstract int getEndIndex()

返回文本的结束索引。

abstract int getIndex()

返回当前的索引。

abstract char last()

将位置设置为getEndIndex() - 1(如果文本为空,则为getEndIndex())并返回该位置处的字符。

abstract char next()

将迭代器的索引加1,并返回新索引处的字符。

abstract char previous()

将迭代器的索引减1并返回新索引处的字符。

abstract char setIndex(int position)

将位置设置为文本中的指定位置并返回该字符。

Constants

DONE

Added in API level 1
char DONE

当迭代器到达文本的结尾或开始时返回的常量。 值是'\\ uFFFF',不是任何有效的Unicode字符串中不应出现的“不是字符”值。

常量值:65535(0x0000ffff)

Public methods

clone

Added in API level 1
Object clone ()

创建此迭代器的副本

Returns
Object A copy of this

current

Added in API level 1
char current ()

获取当前位置的字符(由getIndex()返回)。

Returns
char the character at the current position or DONE if the current position is off the end of the text.

也可以看看:

first

Added in API level 1
char first ()

将位置设置为getBeginIndex()并返回该位置处的字符。

Returns
char the first character in the text, or DONE if the text is empty

也可以看看:

getBeginIndex

Added in API level 1
int getBeginIndex ()

返回文本的开始索引。

Returns
int the index at which the text begins.

getEndIndex

Added in API level 1
int getEndIndex ()

返回文本的结束索引。 该索引是文本结尾后第一个字符的索引。

Returns
int the index after the last character in the text

getIndex

Added in API level 1
int getIndex ()

返回当前的索引。

Returns
int the current index.

last

Added in API level 1
char last ()

将位置设置为getEndIndex() - 1(如果文本为空,则为getEndIndex())并返回该位置处的字符。

Returns
char the last character in the text, or DONE if the text is empty

也可以看看:

next

Added in API level 1
char next ()

将迭代器的索引加1,并返回新索引处的字符。 如果生成的索引大于或等于getEndIndex(),则将当前索引重置为getEndIndex(),并返回DONE值。

Returns
char the character at the new position or DONE if the new position is off the end of the text range.

previous

Added in API level 1
char previous ()

将迭代器的索引减1并返回新索引处的字符。 如果当前索引是getBeginIndex(),则索引将保留在getBeginIndex()处,并返回DONE值。

Returns
char the character at the new position or DONE if the current position is equal to getBeginIndex().

setIndex

Added in API level 1
char setIndex (int position)

将位置设置为文本中的指定位置并返回该字符。

Parameters
position int: the position within the text. Valid values range from getBeginIndex() to getEndIndex(). An IllegalArgumentException is thrown if an invalid value is supplied.
Returns
char the character at the specified position or DONE if the specified position is equal to getEndIndex()

Hooray!