Module  java.base
软件包  java.text

Interface CharacterIterator

  • All Superinterfaces:
    Cloneable
    All Known Subinterfaces:
    AttributedCharacterIterator
    所有已知实现类:
    SegmentStringCharacterIterator


    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); }  
    从以下版本开始:
    1.1
    另请参见:
    StringCharacterIteratorAttributedCharacterIterator
    • Field Summary

      Fields  
      Modifier and Type Field 描述
      static char DONE
      当迭代器到达文本的结尾或开始时返回的常量。
    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      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字符串中出现的“不是字符”值。
        另请参见:
        Constant Field Values
    • 方法详细信息

      • 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异常。
        结果
        指定位置的字符或DONE,如果指定的位置等于getEndIndex()
      • getBeginIndex

        int getBeginIndex​()
        返回文本的起始索引。
        结果
        文本开始的索引。
      • getEndIndex

        int getEndIndex​()
        返回文本的结束索引。 该索引是文本结束后第一个字符的索引。
        结果
        文本中最后一个字符后的索引
      • getIndex

        int getIndex​()
        返回当前索引。
        结果
        当前指数。
      • clone

        Object clone​()
        创建一个这个迭代器的副本
        结果
        A copy of this