RuleBasedCollator 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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 是 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 = "& a < b < c < d";
RuleBasedCollator simpleCollator = new RuleBasedCollator(simple);
String norwegian = "& a , A < b , B < c , C < d , D < e , E "
+ "< f , F < g , G < h , H < i , I < j , "
+ "J < k , K < l , L < m , M < n , N < "
+ "o , O < p , P < q , Q <r , R <s , S < "
+ "t , T < u , U < v , V < w , W < x , X "
+ "< y , Y < z , Z < \u00E5 = a\u030A "
+ ", \u00C5 = A\u030A ; aa , AA < \u00E6 "
+ ", \u00C6 < \u00F8 , \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 = "& C < 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 = "= \u0301 ; \u0300 ; \u0302 ; \u0308 "
+ "; \u0327 ; \u0303 ; \u0304 ; \u0305 "
+ "; \u0306 ; \u0307 ; \u0309 ; \u030A "
+ "; \u030B ; \u030C ; \u030D ; \u030E "
+ "; \u030F ; \u0310 ; \u0311 ; \u0312 "
+ "< a , A ; ae, AE ; \u00e6 , \u00c6 "
+ "< b , B < c, C < e, E & C < d , D";
// change the order of accent characters
String addOn = "& \u0300 ; \u0308 ; \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 \u2212
String jaString = "& \u2212 <\u3041, \u3042 <\u3043, "
+ "\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 |
回傳此 |
| 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) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
RuleBasedCollator 是 Collator 的一個具體子類別。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |