返回介绍

java.text 接口 CharacterIterator

发布于 2019-10-04 09:51:20 字数 6701 浏览 858 评论 0 收藏 0

所有超级接口:
Cloneable
所有已知子接口:
AttributedCharacterIterator
所有已知实现类:
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

字段摘要
staticcharDONE

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

方法摘要
Objectclone()

创建此迭代器的一个副本

charcurrent()

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

charfirst()

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

intgetBeginIndex()

返回文本的起始索引。

intgetEndIndex()

返回文本的结束索引。

intgetIndex()

返回当前索引。

charlast()

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

charnext()

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

charprevious()

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

charsetIndex(intposition)

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

字段详细信息

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(intposition)
将位置设置为文本中的指定位置,并返回该字符。
参数:
position - 文本中的位置。从 getBeginIndex() 到 getEndIndex() 的有效值。如果提供了无效值,则抛出 IllegalArgumentException。
返回:
指定位置的字符;如果指定位置等于 getEndIndex(),则返回 DONE

getBeginIndex

int getBeginIndex()
返回文本的起始索引。
返回:
文本开始处的索引。

getEndIndex

int getEndIndex()
返回文本的结束索引。此索引是文本末尾后面第一个字符的索引。
返回:
文本中最后一个字符后面的索引

getIndex

int getIndex()
返回当前索引。
返回:
当前索引。

clone

Object clone()
创建此迭代器的一个副本
返回:
迭代器的副本

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文