CollationElementIterator 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。
[Android.Runtime.Register("android/icu/text/CollationElementIterator", ApiSince=24, DoNotGenerateAcw=true)]
public sealed class CollationElementIterator : Java.Lang.Object
[<Android.Runtime.Register("android/icu/text/CollationElementIterator", ApiSince=24, DoNotGenerateAcw=true)>]
type CollationElementIterator = class
inherit Object
- 继承
- 属性
注解
CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。 每次迭代的返回结果是一个 32 位排序规则元素(CE),用于定义源字符串中下一个字符或字符序列的排序优先级。
为了图示,请考虑在斯洛伐克语和传统的西班牙语排序规则中执行以下操作: <blockquote>
"ca" -> the first collation element is CE('c') and the second
collation element is CE('a').
"cha" -> the first collation element is CE('ch') and the second
collation element is CE('a').
</blockquote> 和德语电话簿排序规则, <blockquote>
Since the character 'æ' is a composed character of 'a' and 'e', the
iterator returns two collation elements for the single character 'æ'
"æb" -> the first collation element is collation_element('a'), the
second collation element is collation_element('e'), and the
third collation element is collation_element('b').
</blockquote>
对于排序规则排序规则比较,只需使用基本算术运算符(例如 <、== 或 >)来比较排序规则元素结果,必须进一步处理。 可以在 ICU 用户指南中找到详细信息。 将 CollationElementIterator 用于排序规则排序比较的示例是类 android.icu.text.StringSearch。
若要构造 CollationElementIterator 对象,用户对定义所需排序顺序的 RuleBasedCollator 调用 method getCollationElementIterator()。
示例: <blockquote>
String testString = "This is a test";
RuleBasedCollator rbc = new RuleBasedCollator("&a<b");
CollationElementIterator iterator = rbc.getCollationElementIterator(testString);
int primaryOrder = iterator.IGNORABLE;
while (primaryOrder != iterator.NULLORDER) {
int order = iterator.next();
if (order != iterator.IGNORABLE &&
order != iterator.NULLORDER) {
// order is valid, not ignorable and we have not passed the end
// of the iteration, we do something
primaryOrder = CollationElementIterator.primaryOrder(order);
System.out.println("Next primary order 0x" +
Integer.toHexString(primaryOrder));
}
}
</blockquote>
方法 next() 基于排序规则器的比较级别返回下一个字符的排序规则顺序。 方法 previous() 基于排序规则器的比较级别返回上一个字符的排序规则顺序。 排序规则元素迭代器仅在对 reset()、setOffset()或 setText()的调用之间移动一个方向。 也就是说,下一个()和上一个()不能相互使用。 每当在 next() 之后调用 previous()或反之亦然时,必须首先调用 reset()、setOffset() 或 setText()来重置状态,将当前位置移到字符串(reset() 或 setText()的末尾或开头(setOffset()或指定位置(setOffset())。 因此,在下一次调用 next() 或 previous()、第一个或最后一个排序规则顺序时,将返回位于指定位置的排序规则顺序。 如果在没有其中一个调用的情况下完成方向更改,则结果未定义。
此类不可进行子类化。
Java文档android.icu.text.CollationElementIterator。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
字段
| 名称 | 说明 |
|---|---|
| Ignorable |
将忽略排序规则元素结果时,迭代器在 next() 和 previous() 方法中返回此常量。 |
| Nullorder |
当到达源字符串的末尾或开头时,迭代器在方法 next() 和 previous()中返回此常量,并且没有更多有效的排序规则元素要返回。 |
属性
| 名称 | 说明 |
|---|---|
| Class |
返回此 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| JniIdentityHashCode |
|
| JniPeerMembers |
|
| Offset |
返回与下一排序规则元素对应的源字符串中的字符偏移量。 - 或 - 将迭代器设置为指向与指定偏移量处的字符对应的排序规则元素。 |
| PeerReference |
|
| ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 Object) |
| ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 Object) |
方法
| 名称 | 说明 |
|---|---|
| Clone() |
创建并返回此对象的副本。 (继承自 Object) |
| Dispose() |
|
| Dispose(Boolean) |
|
| Equals(Object) |
指示其他对象是否“等于”此对象。 (继承自 Object) |
| GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
| GetMaxExpansion(Int32) |
返回以指定排序规则元素结尾的任何扩展序列的最大长度。 |
| JavaFinalize() |
当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
| Next() |
获取源字符串中的下一个排序规则元素。 |
| Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
| NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
| Previous() |
获取源字符串中的上一个排序规则元素。 |
| PrimaryOrder(Int32) |
返回指定排序规则元素 i 的主顺序。 |
| Reset() |
将光标重置为字符串的开头。 |
| SecondaryOrder(Int32) |
返回指定排序规则元素 i 的次序。 |
| SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
| SetText(ICharacterIterator) |
设置用于迭代的新源字符串迭代器,并将偏移量重置为文本开头。 |
| SetText(String) |
设置用于迭代的新源字符串,并将偏移量重置为文本开头。 |
| SetText(UCharacterIterator) |
设置用于迭代的新源字符串迭代器,并将偏移量重置为文本开头。 |
| TertiaryOrder(Int32) |
返回指定排序规则元素 i 的第三个顺序。 |
| ToArray<T>() |
|
| ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
| UnregisterFromRuntime() |
|
| Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><> (继承自 Object) |
| Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
显式接口实现
| 名称 | 说明 |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.DisposeUnlessReferenced() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniManagedPeerState |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |