- 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').
一个字符的键是一个整数,由一个小阶(short),二次(byte)和三阶(byte)组成。 Java严格定义了其原始数据类型的大小和签名。 因此,静态函数"�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 intNULLORDER指示字符串结束的空白顺序由光标到达。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 intgetMaxExpansion(int order)返回以指定的比较顺序结束的任何扩展序列的最大长度。intgetOffset()返回与下一个排序规则元素对应的原始文本中的字符偏移量。intnext()获取字符串中的下一个排序规则元素。intprevious()获取字符串中的以前的排序规则元素。static intprimaryOrder(int order)返回排序规则元素的主要组件。voidreset()将光标重置为字符串的开头。static shortsecondaryOrder(int order)返回排序规则元素的次要组件。voidsetOffset(int newOffset)将迭代器设置为指向与指定字符对应的排序规则元素(参数是原始字符串中的CHARACTER偏移量,而不是其对应的排序规则元素序列中的偏移量)。voidsetText(String source)设置要迭代的新字符串。voidsetText(CharacterIterator source)设置要迭代的新字符串。static shorttertiaryOrder(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
-
-