-
- All Superinterfaces:
-
Cloneable
- All Known Subinterfaces:
-
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); } }
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
- 另请参见:
-
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
static final char DONE
迭代器到达文本的结尾或开头时返回的常量。 值为'\\ uFFFF',“非字符”值不应出现在任何有效的Unicode字符串中。- 另请参见:
- 常数字段值
-
-
方法详细信息
-
first
char first()
将位置设置为getBeginIndex()并返回该位置的字符。- 结果
- 文本中的第一个字符,如果文本为空,则为DONE
- 另请参见:
-
getBeginIndex()
-
last
char last()
将位置设置为getEndIndex() - 1(如果文本为空,则为getEndIndex())并返回该位置的字符。- 结果
- 文本中的最后一个字符,如果文本为空,则为DONE
- 另请参见:
-
getEndIndex()
-
current
char current()
获取当前位置的字符(由getIndex()返回)。- 结果
- 当前位置的字符,如果当前位置不在文本末尾,则为DONE。
- 另请参见:
-
getIndex()
-
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()
创建此迭代器的副本- 结果
- A copy of this
-
-