- 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').
字符的键是由初级(短),次级(字节)和三级(字节)组成的整数。 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
-
-
字段汇总
字段 变量和类型 字段 描述 static intNULLORDER指示字符串结束的空顺序由光标到达。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 intgetMaxExpansion(int order)返回以指定比较顺序结束的任何扩展序列的最大长度。intgetOffset()返回与下一个collation元素对应的原始文本中的字符偏移量。intnext()获取字符串中的下一个collation元素。intprevious()获取字符串中的前一个collation元素。static intprimaryOrder(int order)返回collation元素的主要组件。voidreset()将光标重置为字符串的开头。static shortsecondaryOrder(int order)返回collation元素的辅助组件。voidsetOffset(int newOffset)将迭代器设置为指向与指定字符对应的collation元素(该参数是原始字符串中的CHARACTER偏移量,而不是其对应的归类元素序列的偏移量)。voidsetText(String source)设置要迭代的新字符串。voidsetText(CharacterIterator source)设置要迭代的新字符串。static shorttertiaryOrder(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
-
-