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').
</區塊引用>
對於排序排序的比較,無法僅用基本算術運算子(例如 <、== 或 >)來比較排序元素結果,因此還需進一步處理。 詳細資訊請參閱加護病房 使用者指南。 使用 CollationElementIterator 進行排序比較的例子是類別 android.icu.text.StringSearch。
要建構 CollationElementIterator 物件,使用者會在定義所需排序順序的 RuleBasedCollator 上呼叫 getCollationElementIterator() 這個方法。
範例: <區塊引號>
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));
}
}
</區塊引用>
next() 方法會根據整理器的比較層級回傳下一個字元的排序順序。 前述方法()會回傳前一個字元的排序順序,該排序基於整理器的比較層級。 排序元素迭代器在呼叫 reset()、setOffset(或 setText() 之間僅向一個方向移動。 也就是說,next() 與 previous () 不可互用。 每當 next() 或反之,必須先呼叫 reset()、setOffset() 或 setText() 來重置狀態,將當前位置移至字串的末尾或起始(reset() 或 setText()),或指定位置(setOffset())。 因此,在下一次 next() 或 presious() 的呼叫時,會回傳第一個或最後一個排序順序,或指定位置的排序順序。 若改變方向時未使用上述任何一個呼叫,結果則未定義。
這個職業不適合子職業。
Java 文件 android.icu.text.CollationElementIterator。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
欄位
| 名稱 | Description |
|---|---|
| Ignorable |
當要忽略排序元素結果時,迭代器會在 next() 和 prewious() 方法中回傳此常數。 |
| Nullorder |
當來源字串的結束或開始被到達且沒有有效的排序元素可回傳時,迭代器會在 next() 和 prewious() 方法中回傳此常數。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| Offset |
回傳對應下一個校對元素來源字串的字元偏移量。 -或- 將迭代器指向對應於指定偏移量的字元的校對元素。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
|
| Equals(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) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| SetText(ICharacterIterator) |
設定一個新的源字串迭代器進行迭代,並將偏移量重設到文字開頭。 |
| SetText(String) |
設定一個新的源字串進行迭代,並將偏移量重置回文字開頭。 |
| SetText(UCharacterIterator) |
設定一個新的源字串迭代器進行迭代,並將偏移量重設到文字開頭。 |
| TertiaryOrder(Int32) |
回傳指定排序元素的三級順序 i。 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |