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); }
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) 将位置设置为文本中的指定位置并返回该字符。 |
char DONE
当迭代器到达文本的结尾或开始时返回的常量。 值是'\\ uFFFF',不是任何有效的Unicode字符串中不应出现的“不是字符”值。
常量值:65535(0x0000ffff)
char current ()
获取当前位置的字符(由getIndex()返回)。
Returns | |
---|---|
char |
the character at the current position or DONE if the current position is off the end of the text. |
也可以看看:
char first ()
将位置设置为getBeginIndex()并返回该位置处的字符。
Returns | |
---|---|
char |
the first character in the text, or DONE if the text is empty |
也可以看看:
int getBeginIndex ()
返回文本的开始索引。
Returns | |
---|---|
int |
the index at which the text begins. |
int getEndIndex ()
返回文本的结束索引。 该索引是文本结尾后第一个字符的索引。
Returns | |
---|---|
int |
the index after the last character in the text |
char last ()
将位置设置为getEndIndex() - 1(如果文本为空,则为getEndIndex())并返回该位置处的字符。
Returns | |
---|---|
char |
the last character in the text, or DONE if the text is empty |
也可以看看:
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. |
char previous ()
将迭代器的索引减1并返回新索引处的字符。 如果当前索引是getBeginIndex(),则索引将保留在getBeginIndex()处,并返回DONE值。
Returns | |
---|---|
char |
the character at the new position or DONE if the current position is equal to getBeginIndex(). |
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() |