CollationElementIterator 类

定义

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
属性

注解

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。 每次迭代的返回结果是一个 32 位排序规则元素(CE),用于定义源字符串中下一个字符或字符序列的排序优先级。

为了图示,请考虑在斯洛伐克语和传统的西班牙语排序规则中执行以下操作: <blockquote>

"ca" -&gt; the first collation element is CE('c') and the second
                    collation element is CE('a').
            "cha" -&gt; the first collation element is CE('ch') and the second
                     collation element is CE('a').

</blockquote> 和德语电话簿排序规则, <blockquote>

Since the character '&#230;' is a composed character of 'a' and 'e', the
            iterator returns two collation elements for the single character '&#230;'

            "&#230;b" -&gt; 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("&amp;a&lt;b");
             CollationElementIterator iterator = rbc.getCollationElementIterator(testString);
             int primaryOrder = iterator.IGNORABLE;
             while (primaryOrder != iterator.NULLORDER) {
                 int order = iterator.next();
                 if (order != iterator.IGNORABLE &amp;&amp;
                     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

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
JniPeerMembers

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

Offset

返回与下一排序规则元素对应的源字符串中的字符偏移量。 - 或 - 将迭代器设置为指向与指定偏移量处的字符对应的排序规则元素。

PeerReference

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

(继承自 Object)
ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

(继承自 Object)

方法

名称 说明
Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
Dispose(Boolean)

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
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>()

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
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()

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
IJavaPeerable.Finalized()

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

(继承自 Object)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

CollationElementIterator 是由 RuleBasedCollator 创建的迭代器,用于演练字符串。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于