- java.lang.Object
-
- java.text.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').
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
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
NULLORDER
指示字符串结束的空白顺序由光标到达。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 int
getMaxExpansion(int order)
返回以指定的比较顺序结束的任何扩展序列的最大长度。int
getOffset()
返回与下一个排序规则元素对应的原始文本中的字符偏移量。int
next()
获取字符串中的下一个排序规则元素。int
previous()
获取字符串中的以前的排序规则元素。static int
primaryOrder(int order)
返回排序规则元素的主要组件。void
reset()
将光标重置为字符串的开头。static short
secondaryOrder(int order)
返回排序规则元素的次要组件。void
setOffset(int newOffset)
将迭代器设置为指向与指定字符对应的排序规则元素(参数是原始字符串中的CHARACTER偏移量,而不是其对应的排序规则元素序列中的偏移量)。void
setText(String source)
设置要迭代的新字符串。void
setText(CharacterIterator source)
设置要迭代的新字符串。static short
tertiaryOrder(int order)
返回排序规则元素的三级分量。
-
-
-
字段详细信息
-
NULLORDER
public static final int NULLORDER
指示字符串结束的空白顺序由光标到达。- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
reset
public void reset()
将光标重置为字符串的开头。 next()的下一个调用将返回字符串中的第一个排序规则元素。
-
next
public int next()
获取字符串中的下一个排序规则元素。该迭代器遍历从字符串构建的一系列排序规则元素。 因为没有必要从字符到排序规则元素的一对一映射,这并不意味着与“返回字符串中下一个字符的排序规则元素[或排序优先级]”相同。
此函数返回迭代器当前指向的排序规则元素,然后更新内部指针以指向下一个元素。 previous()首先更新指针,然后返回该元素。 这意味着当您在迭代时更改方向(即,调用next(),然后调用previous()或调用previous()然后调用next()),您将返回相同的元素两次。
- 结果
- 下一个排序规则元素
-
previous
public int previous()
获取字符串中的以前的排序规则元素。该迭代器遍历从字符串构建的一系列排序规则元素。 因为没有必要从字符到排序规则元素的一对一映射,这并不意味着与“返回字符串中前一个字符的排序规则元素[或排序优先级]”相同。
此函数将迭代器的内部指针更新为指向当前指向的collation元素,然后返回该元素,而next()返回当前元素,然后更新指针。 这意味着当您在迭代时更改方向(即,调用next(),然后调用previous()或调用previous()然后调用next()),您将返回相同的元素两次。
- 结果
- 以前的排序规则元素
- 从以下版本开始:
- 1.2
-
primaryOrder
public static final int primaryOrder(int order)
返回排序规则元素的主要组件。- 参数
-
order
- 排序规则元素 - 结果
- 元素的主要组成部分
-
secondaryOrder
public static final short secondaryOrder(int order)
返回排序规则元素的次要组件。- 参数
-
order
- 排序规则元素 - 结果
- 元素的次要组件
-
tertiaryOrder
public static final short tertiaryOrder(int order)
返回排序规则元素的三级分量。- 参数
-
order
- 排序规则元素 - 结果
- 元素的第三部分
-
setOffset
public void setOffset(int newOffset)
将迭代器设置为指向与指定字符对应的排序规则元素(参数是原始字符串中的CHARACTER偏移量,而不是其对应的排序规则元素序列中的偏移量)。 下一次调用next()返回的值将是对应于文本中指定位置的排序规则元素。 如果该位置在合约字符序列的中间,下一次调用next()的结果是该序列的排序规则元素。 这意味着getOffset()不能保证返回与传递给setOffset()的前一个调用相同的值。- 参数
-
newOffset
- 新的字符偏移到原始文本。 - 从以下版本开始:
- 1.2
-
getOffset
public int getOffset()
返回与下一个排序规则元素对应的原始文本中的字符偏移量。 (也就是说,getOffset()返回与下一次调用next()返回的排序规则元素对应的文本中的位置)。该值将始终是对应于排序规则元素的第一个字符的索引(a当两个或更多个字符都对应于相同的排序规则元素时,收缩字符序列)。 这意味着如果您立即通过getOffset()执行setOffset(x),getOffset()将不一定返回x。- 结果
- 对应于下一次调用next()返回的排序规则元素的原始文本中的字符偏移量。
- 从以下版本开始:
- 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
-
-