語言

RuleBasedCollator 類別

定義

RuleBasedCollator 是 Collator 的一個具體子類別。

[Android.Runtime.Register("android/icu/text/RuleBasedCollator", ApiSince=24, DoNotGenerateAcw=true)]
public sealed class RuleBasedCollator : Android.Icu.Text.Collator
[<Android.Runtime.Register("android/icu/text/RuleBasedCollator", ApiSince=24, DoNotGenerateAcw=true)>]
type RuleBasedCollator = class
    inherit Collator
繼承
RuleBasedCollator
屬性

備註

RuleBasedCollator 是 Collator 的一個具體子類別。 它允許透過使用者自訂的規則集來自訂 Collator。 RuleBasedCollator 設計完全符合 Unicode 排序演算法(UCA), 並符合 ISO 14651 標準。

Collator 只有在凍結時才是線程安全的。 請參閱 #isFrozen() 與 android.icu.util.Freezable。

強烈建議使用者在使用此類別前,先閱讀 使用者指南 以獲得更多關於彙整服務的資訊。

透過在基類 Collator 中呼叫 getInstance(Locale) 工廠方法,從一個區域建立一個 RuleBasedCollator。 Collator.getInstance(Locale)根據參數 locale 定義的整合規則,建立一個 RuleBasedCollator 物件。 若需要自訂的排序順序或屬性,請使用 RuleBasedCollator(String) 建構器搭配相應規則。 自訂的 RuleBasedCollator 會根據 CLDR 根排序來排序,同時根據指定規則重新調整角色的屬性與順序。

RuleBasedCollator 為大多數加護病房支援的地點提供正確的排序順序。 若無法取得特定區域資料,順序最終會退回到 CLDR 的根排序順序。

關於排序規則語法及自訂細節,請參閱使用者指南中的 排序自訂 部分。

<strong>注意</strong> Java 與 ICU4J 中使用的 Collation 規則語法有些差異:

<ul><li>根據 JDK 文件: <br>修飾詞 '!' :啟動泰語/寮語元音與子音互換。如果此規則在泰語元音範圍為 \ 時生效;U0E40-\U0E44 位於音域 \ 的泰語子音前;U0E01-\U0E2E 或 為 #92 範圍的寮國元音;U0EC0-\U0EC4 位於 \ 音域的寮語子音前;U0E81-\然後將元音放在子音後面以便整理。 <BR> 若規則未加修飾語「!」,則未開啟泰語/寮語元音與子音互換。 <br> ICU4J 的 RuleBasedCollator 不支援關閉泰語/寮語元音與子音互換,因為 UCA 明確表示必須支援才能確保正確的排序順序。 若遇到「!」,則忽略。</li><li>如基底類別 Collator 文件所述,不支援相容分解模式。</li></ul>

<強力>範例</強力>

建立自訂 RuleBasedCollators: <blockquote>

String simple = "&amp; a &lt; b &lt; c &lt; d";
            RuleBasedCollator simpleCollator = new RuleBasedCollator(simple);

            String norwegian = "&amp; a , A &lt; b , B &lt; c , C &lt; d , D &lt; e , E "
                               + "&lt; f , F &lt; g , G &lt; h , H &lt; i , I &lt; j , "
                               + "J &lt; k , K &lt; l , L &lt; m , M &lt; n , N &lt; "
                               + "o , O &lt; p , P &lt; q , Q &lt;r , R &lt;s , S &lt; "
                               + "t , T &lt; u , U &lt; v , V &lt; w , W &lt; x , X "
                               + "&lt; y , Y &lt; z , Z &lt; &#92;u00E5 = a&#92;u030A "
                               + ", &#92;u00C5 = A&#92;u030A ; aa , AA &lt; &#92;u00E6 "
                               + ", &#92;u00C6 &lt; &#92;u00F8 , &#92;u00D8";
            RuleBasedCollator norwegianCollator = new RuleBasedCollator(norwegian);

</區塊引用>

將 s 連接 Collator的規則: <blockquote>

// Create an en_US Collator object
            RuleBasedCollator en_USCollator = (RuleBasedCollator)
                Collator.getInstance(new Locale("en", "US", ""));
            // Create a da_DK Collator object
            RuleBasedCollator da_DKCollator = (RuleBasedCollator)
                Collator.getInstance(new Locale("da", "DK", ""));
            // Combine the two
            // First, get the collation rules from en_USCollator
            String en_USRules = en_USCollator.getRules();
            // Second, get the collation rules from da_DKCollator
            String da_DKRules = da_DKCollator.getRules();
            RuleBasedCollator newCollator =
                                        new RuleBasedCollator(en_USRules + da_DKRules);
            // newCollator has the combined rules

</區塊引用>

對現有的 RuleBasedCollator 進行修改以建立新 Collator 物件,方法是在現有規則上附加變更: <blockquote>

// Create a new Collator object with additional rules
            String addRules = "&amp; C &lt; ch, cH, Ch, CH";
            RuleBasedCollator myCollator =
                new RuleBasedCollator(en_USCollator.getRules() + addRules);
            // myCollator contains the new rules

</區塊引用>

如何更改非空格重音符號的順序: <blockquote>

// old rule with main accents
            String oldRules = "= &#92;u0301 ; &#92;u0300 ; &#92;u0302 ; &#92;u0308 "
                            + "; &#92;u0327 ; &#92;u0303 ; &#92;u0304 ; &#92;u0305 "
                            + "; &#92;u0306 ; &#92;u0307 ; &#92;u0309 ; &#92;u030A "
                            + "; &#92;u030B ; &#92;u030C ; &#92;u030D ; &#92;u030E "
                            + "; &#92;u030F ; &#92;u0310 ; &#92;u0311 ; &#92;u0312 "
                            + "&lt; a , A ; ae, AE ; &#92;u00e6 , &#92;u00c6 "
                            + "&lt; b , B &lt; c, C &lt; e, E &amp; C &lt; d , D";
            // change the order of accent characters
            String addOn = "&amp; &#92;u0300 ; &#92;u0308 ; &#92;u0302";
            RuleBasedCollator myCollator = new RuleBasedCollator(oldRules + addOn);

</區塊引用>

在預設設定前新增主要排序,例如在日文Collator<中將英文字元排序在日文字元之前或之後:blockquote>

// get en_US Collator rules
            RuleBasedCollator en_USCollator
                                   = (RuleBasedCollator)Collator.getInstance(Locale.US);
            // add a few Japanese characters to sort before English characters
            // suppose the last character before the first base letter 'a' in
            // the English collation rule is &#92;u2212
            String jaString = "&amp; &#92;u2212 &lt;&#92;u3041, &#92;u3042 &lt;&#92;u3043, "
                              + "&#92;u3044";
            RuleBasedCollator myJapaneseCollator
                         = new RuleBasedCollator(en_USCollator.getRules() + jaString);

</區塊引用>

此職業不可次級

Java 文件 android.icu.text.RuleBasedCollator。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
RuleBasedCollator(String)

一個取參數規則進行自訂的建構子。

欄位

名稱 Description
CanonicalDecomposition
已淘汰.

分解模式值。

(繼承來源 Collator)
FullDecomposition
已淘汰.

<strong>[icu] 注意:</strong> 此功能僅用於向下相容 Java API。

(繼承來源 Collator)
Identical
已淘汰.

最小的 Collator 強度值。

(繼承來源 Collator)
NoDecomposition
已淘汰.

分解模式值。

(繼承來源 Collator)
Primary
已淘汰.

最強的收集器強度值。

(繼承來源 Collator)
Quaternary
已淘汰.

<強[>重症監護室]</強力> 第四級整理者力量值。

(繼承來源 Collator)
Secondary
已淘汰.

第二級收集者強度值。

(繼承來源 Collator)
Tertiary
已淘汰.

三級收集者力量值。

(繼承來源 Collator)

屬性

名稱 Description
AlternateHandlingShifted

檢查替代處理行為是 UCA 定義的 SHIFTED 還是 NON_IGNORABLE。 -或- 將第四紀強度的備用處理設定為移動或不可忽略。

CaseLevel

檢查案件層級是否設為 true。 -或- 當案件等級設為 true 時,會在次級權重與第三級權重之間形成額外權重,稱為案件層級。

Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Decomposition

回傳此整理器的分解模式。 -或- 設定此排序器的分解模式。

(繼承來源 Collator)
FrenchCollation

檢查法語排序是否設為 true。 -或- 設定法式排序中次要權重的方向模式。

Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsFrozen

判斷物體是否被凍結。

(繼承來源 Collator)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
JniPeerMembers

RuleBasedCollator 是 Collator 的一個具體子類別。

LowerCaseFirst

若小寫字元在對應大寫字元之前排序,則回傳 true。 -或- 將小寫字母的排序順序置於大寫字母之前,強度為 TERTIARY。

MaxVariable

<strong>[icu]</strong> 回傳受替代處理行為影響的重排序最大群組。

(繼承來源 Collator)
NumericCollation

取得數值彙整值的方法。 -或- <strong>[icu]</strong> 當數值排序開啟時,這個排序器會讓數字子串依其數值排序。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
Rules

取得此 RuleBasedCollator 的彙整調整規則。

Strength

回傳此 Collator 的力量屬性。 -或- 設定此計數器的力量屬性。

(繼承來源 Collator)
TailoredSet

<strong>[icu]</strong> 回傳一個包含此彙整器中所有字元與序列的 UnicodeSet。

(繼承來源 Collator)
ThresholdClass

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 Collator)
ThresholdType

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 Collator)
UCAVersion

取得UCA版本的這個彙集器物件。

UpperCaseFirst

若大寫字元排序在對應小寫字元之前,則回傳 true。 -或- 設定大寫字元是否在小寫字母之前排序,或反之,強度為 TERTIARY。

VariableTop

<strong>[icu]</strong> 獲得 Collator 的可變最高值。

Version

取得這個整理器物件的版本。

方法

名稱 Description
Clone()

複製人整理器。

(繼承來源 Collator)
CloneAsThawed()

提供複製人行動的規定。

(繼承來源 Collator)
Compare(Object, Object)

比較來源物件與目標物件。

(繼承來源 Collator)
Compare(String, String)

根據此 RuleBasedCollator 的排序規則、強度與分解模式,將原始文字字串與目標文字字串進行比較。

Construct(JniObjectReference, JniObjectReferenceOptions)

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
Equals(Object)

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
Equals(String, String)

利用此拼貼器的規則、強度與分解模式比較兩個文字字串的相等性。

(繼承來源 Collator)
Freeze()

會凍結整理器。

(繼承來源 Collator)
GetCollationElementIterator(ICharacterIterator)

回傳給定 CharacterIterator 的 CollationElementIterator。

GetCollationElementIterator(String)

回傳給定字串的 CollationElementIterator。

GetCollationElementIterator(UCharacterIterator)

回傳給定的 UCharacterIterator 的 CollationElementIterator。

GetCollationKey(String)

從這個 RuleBasedCollator 取得參數 String source 的 Collation 鍵。

GetContractionsAndExpansions(UnicodeSet, UnicodeSet, Boolean)

取得包含整合器縮寫和/或擴展的 Unicode 集合

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetReorderCodes()

取得此整理器的重排序代碼。

(繼承來源 Collator)
GetRules(Boolean)

退貨 現行規則。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
SetAlternateHandlingDefault()

將替代處理模式設定為 RuleBasedCollator 建構時設定的初始模式。

SetCaseFirstDefault()

將案例優先模式設定為 RuleBasedCollator 建構時的初始模式設定。

SetCaseLevelDefault()

將案例層級模式設定為 RuleBasedCollator 建置時設定的初始模式。

SetDecompositionDefault()

將分解模式設定為 RuleBasedCollator 建構時設定的初始模式。

SetFrenchCollationDefault()

將法語排序模式設定為 RuleBasedCollator 建構時設定的初始模式。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetMaxVariable(Int32)

<strong>[icu]</strong> 將變數頂置為指定重排序群組的頂端。

(繼承來源 Collator)
SetNumericCollationDefault()

將數值排序設為預設值的方法。

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
SetReorderCodes(Int32[])

設定此整理器的重新排序代碼。

(繼承來源 Collator)
SetStrengthDefault()

將彙整強度設定為建置 RuleBasedCollator 時設定的初始模式。

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
IComparator.Compare(Object, Object)

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 Collator)
IFreezable.CloneAsThawed()

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 Collator)
IFreezable.Freeze()

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 Collator)
IJavaPeerable.Disposed()

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

RuleBasedCollator 是 Collator 的一個具體子類別。

(繼承來源 Collator)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

RuleBasedCollator 是 Collator 的一個具體子類別。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於