模块  java.base
软件包  java.text

Class CollationElementIterator


  • public final class CollationElementIterator
    extends Object
    CollationElementIterator类用作遍历国际字符串的每个字符的迭代器。 使用迭代器返回定位字符的排序优先级。 字符的排序优先级(我们称之为键)定义了如何在给定的排序规则对象中整理字符。

    例如,请考虑以下西班牙语:

     "ca" → the first key is key('c') and second key is key('a').
     "cha" → the first key is key('ch') and second key is key('a').
     
    在德语中,
     "äb" → the first key is key('a'), the second key is key('e'), and
     the third key is key('b').
     
    字符的键是由初级(短),次级(字节)和三级(字节)组成的整数。 Java严格定义其原始数据类型的大小和签名。 因此,静态函数primaryOrdersecondaryOrdertertiaryOrder回报intshortshort分别以确保密钥值的正确性。

    迭代器用法示例,

    
      String testString = "This is a test";
      Collator col = Collator.getInstance();
      if (col instanceof RuleBasedCollator) {
          RuleBasedCollator ruleBasedCollator = (RuleBasedCollator)col;
          CollationElementIterator collationElementIterator = ruleBasedCollator.getCollationElementIterator(testString);
          int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next());
              :
      }
     

    CollationElementIterator.next返回下一个字符的归类顺序。 整理顺序包括主要订单,次要订单和第三级订单。 整理顺序的数据类型为int 整理顺序的前16位是其主要顺序; 接下来的8位是次级,最后8位是次级。

    注意: CollationElementIteratorRuleBasedCollator实施的一部分。 它仅适用于RuleBasedCollator实例。

    从以下版本开始:
    1.1
    另请参见:
    CollatorRuleBasedCollator
    • 字段汇总

      字段  
      变量和类型 字段 描述
      static int NULLORDER
      指示字符串结束的空顺序由光标到达。
    • 方法摘要

      所有方法  静态方法  实例方法 具体的方法 
      变量和类型 方法 描述
      int getMaxExpansion​(int order)
      返回以指定比较顺序结束的任何扩展序列的最大长度。
      int getOffset()
      返回与下一个collation元素对应的原始文本中的字符偏移量。
      int next()
      获取字符串中的下一个collation元素。
      int previous()
      获取字符串中的前一个collation元素。
      static int primaryOrder​(int order)
      返回collation元素的主要组件。
      void reset()
      将光标重置为字符串的开头。
      static short secondaryOrder​(int order)
      返回collation元素的辅助组件。
      void setOffset​(int newOffset)
      将迭代器设置为指向与指定字符对应的collation元素(该参数是原始字符串中的CHARACTER偏移量,而不是其对应的归类元素序列的偏移量)。
      void setText​(String source)
      设置要迭代的新字符串。
      void setText​(CharacterIterator source)
      设置要迭代的新字符串。
      static short tertiaryOrder​(int order)
      返回collation元素的第三个组件。
    • 字段详细信息

      • NULLORDER

        public static final int NULLORDER
        指示字符串结束的空顺序由光标到达。
        另请参见:
        常数字段值
    • 方法详细信息

      • reset

        public void reset()
        将光标重置为字符串的开头。 下一次调用next()将返回字符串中的第一个collation元素。
      • next

        public int next()
        获取字符串中的下一个collation元素。

        此迭代器迭代从字符串构建的一系列排序规则元素。 因为不一定是从字符到collation元素的一对一映射,这并不意味着“返回字符串中下一个字符的collation元素[或排序优先级]”。

        此函数返回迭代器当前指向的collation元素,然后更新内部指针以指向下一个元素。 previous()首先更新指针然后返回元素。 这意味着当你在迭代时改变方向(即调用next()然后调用previous(),或调用previous()然后调用next()),你将两次返回相同的元素。

        结果
        下一个整理元素
      • previous

        public int previous()
        获取字符串中的前一个collation元素。

        此迭代器迭代从字符串构建的一系列排序规则元素。 因为不一定是从字符到collation元素的一对一映射,这并不意味着“返回字符串中前一个字符的collation元素[或排序优先级]”。

        此函数更新迭代器的内部指针以指向其当前指向的元素之前的collation元素,然后返回该元素,而next()返回当前元素,然后更新指针。 这意味着当你在迭代时改变方向(即调用next()然后调用previous(),或调用previous()然后调用next()),你将两次返回相同的元素。

        结果
        上一个校对元素
        从以下版本开始:
        1.2
      • primaryOrder

        public static final int primaryOrder​(int order)
        返回collation元素的主要组件。
        参数
        order - 归类元素
        结果
        元素的主要组成部分
      • secondaryOrder

        public static final short secondaryOrder​(int order)
        返回collation元素的辅助组件。
        参数
        order - 归类元素
        结果
        元素的次要组件
      • tertiaryOrder

        public static final short tertiaryOrder​(int order)
        返回collation元素的第三个组件。
        参数
        order - 归类元素
        结果
        元素的第三部分
      • setOffset

        public void setOffset​(int newOffset)
        将迭代器设置为指向与指定字符对应的collation元素(该参数是原始字符串中的CHARACTER偏移量,而不是其对应的归类元素序列的偏移量)。 下一次调用next()返回的值将是与文本中指定位置对应的collation元素。 如果该位置在收缩字符序列的中间,则下一次调用next()的结果是该序列的collation元素。 这意味着不保证getOffset()返回与先前调用setOffset()相同的值。
        参数
        newOffset - 新字符偏移到原始文本中。
        从以下版本开始:
        1.2
      • getOffset

        public int getOffset()
        返回与下一个collation元素对应的原始文本中的字符偏移量。 (也就是说,getOffset()返回文本中对应于下一次调用next()将返回的collation元素的位置。)此值将始终是与collation元素对应的FIRST字符的索引(a收缩字符序列是当两个或多个字符都对应于相同的校对元素时)。 这意味着如果你执行setOffset(x)后紧跟getOffset(),getOffset()将不一定返回x。
        结果
        原始文本中的字符偏移量,对应于下一次调用next()时将返回的collation元素。
        从以下版本开始:
        1.2
      • getMaxExpansion

        public int getMaxExpansion​(int order)
        返回以指定比较顺序结束的任何扩展序列的最大长度。
        参数
        order - 上一个或下一个返回的归类顺序。
        结果
        以指定顺序结尾的任何扩展序列的最大长度。
        从以下版本开始:
        1.2
      • setText

        public void setText​(String source)
        设置要迭代的新字符串。
        参数
        source - 新的源文本
        从以下版本开始:
        1.2
      • setText

        public void setText​(CharacterIterator source)
        设置要迭代的新字符串。
        参数
        source - 新的源文本。
        从以下版本开始:
        1.2