模块  java.base
软件包  java.text

Interface CharacterIterator

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

    public interface CharacterIteratorextends 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
    • 字段汇总

      字段  
      变量和类型 字段 描述
      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