- java.lang.Object
-
- java.text.CollationElementIterator
-
public final class CollationElementIteratorextends 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').
primaryOrder
,secondaryOrder
和tertiaryOrder
回报int
,short
和short
分别以确保密钥值的正确性。迭代器用法示例,
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位是次级。注意:
CollationElementIterator
是RuleBasedCollator
实施的一部分。 它仅适用于RuleBasedCollator
实例。- 从以下版本开始:
- 1.1
- 另请参见:
-
Collator
,RuleBasedCollator
-
-
字段汇总
字段 变量和类型 字段 描述 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
-
-