語言

Collator 類別

定義

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

[Android.Runtime.Register("android/icu/text/Collator", ApiSince=24, DoNotGenerateAcw=true)]
public abstract class Collator : Java.Lang.Object, Android.Icu.Util.IFreezable, IDisposable, Java.Util.IComparator
[<Android.Runtime.Register("android/icu/text/Collator", ApiSince=24, DoNotGenerateAcw=true)>]
type Collator = class
    inherit Object
    interface IFreezable
    interface ICloneable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IComparator
繼承
衍生
屬性
實作

備註

<強力>[加護病房增強]</強重> 加護病房取代 java.text.Collator. ICU特有的方法、領域及其他功能標示為「<強力>[重症監護室]</強力>」。

Collator 執行區域敏感字串比較。 一個具體子類別 RuleBasedCollator 允許透過規則集來自訂排序順序。

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

依照 Unicode聯盟對 Unicode整合演算法(UCA)的規範,比較中會使用五種不同的強度等級:

<ul><li>主要強度:通常用來表示基本字元之間的差異(例如「a」和「b」)。 這是最明顯的差異。 例如,字典依底字劃分為不同章節。 li次要強項:字元中的口音被視為次要差異(例如「as」 <「&agrave;s“ <「at」)。 其他字母間的差異也可視為次要差異,視語言而定。 當弦中存在主要差異時,次級差異會被忽略。 li第三級強力:大寫與小寫字母的差異在第三級強弱處區分(例如「ao」 <「Ao」 &;「a&ograve;」)。 此外,字母的變體在第三級強度上與基本形式不同(例如「A」和「(A)」)。 另一個例子是大假名與小假名的差異。 當弦中存在主要或次要差異時,三級差異會被忽略。 li第四級強度:當標點符號被忽略(參見 用戶指南中的忽略標點符號)時,可以使用額外強度等級來區分有標點符號與無標點符號的詞彙(例如「ab」 &;「A-B」 <「aB」)。 當存在主要、次要或第三階段差異時,這種差異會被忽略。 只有在需要忽略標點符號時,才應使用第四元強度。 <li>等強:當其他強力相等時,以相同強力作為平手決勝條件。 會比較每個字串 NFD 形式的 Unicode 碼點值,以防無差異。 例如,希伯來語的吟唱符號只有在這個強度下才會區分。 這種強度應謹慎使用,因為只有兩個字串間的碼值差異極為罕見。 使用此強度會大幅降低比較與整合金鑰產生 API 的效能。 此強度同時增加排序鍵的大小。 </ul>

與 JDK 不同,ICU4J 的 Collator 僅處理兩種分解模式,一種是標準分解模式,另一種則是不使用任何分解。 相容性分解模式java.text.Collator.FULL_DECOMPOSITION此處不支援。 若設定為典型分解模式,整理器會正確處理未正規化的文字,產生與 NFD 正規化文本相同的結果。 若正典分解被關閉,使用者需確保所有文字格式已正確,才能進行比較或取得 CollationKey。

欲了解更多關於彙整服務的資訊 ,請參閱使用者指南。

使用範例

// Get the Collator for US English and set its strength to PRIMARY
            Collator usCollator = Collator.getInstance(Locale.US);
            usCollator.setStrength(Collator.PRIMARY);
            if (usCollator.compare("abc", "ABC") == 0) {
                System.out.println("Strings are equivalent");
            }

            The following example shows how to compare two strings using the
            Collator for the default locale.

            // Compare two strings in the default locale
            Collator myCollator = Collator.getInstance();
            myCollator.setDecomposition(NO_DECOMPOSITION);
            if (myCollator.compare("&agrave;&#92;u0325", "a&#92;u0325&#768;") != 0) {
                System.out.println("&agrave;&#92;u0325 is not equals to a&#92;u0325&#768; without decomposition");
                myCollator.setDecomposition(CANONICAL_DECOMPOSITION);
                if (myCollator.compare("&agrave;&#92;u0325", "a&#92;u0325&#768;") != 0) {
                    System.out.println("Error: &agrave;&#92;u0325 should be equals to a&#92;u0325&#768; with decomposition");
                }
                else {
                    System.out.println("&agrave;&#92;u0325 is equals to a&#92;u0325&#768; with decomposition");
                }
            }
            else {
                System.out.println("Error: &agrave;&#92;u0325 should be not equals to a&#92;u0325&#768; without decomposition");
            }

Java 文件 android.icu.text.Collator。

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

建構函式

名稱 Description
Collator()

空的預設建構函數讓 javadocs 滿意

Collator(IntPtr, JniHandleOwnership)

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

欄位

名稱 Description
CanonicalDecomposition
已淘汰.

分解模式值。

FullDecomposition
已淘汰.

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

Identical
已淘汰.

最小的 Collator 強度值。

NoDecomposition
已淘汰.

分解模式值。

Primary
已淘汰.

最強的收集器強度值。

Quaternary
已淘汰.

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

Secondary
已淘汰.

第二級收集者強度值。

Tertiary
已淘汰.

三級收集者力量值。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Decomposition

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

Handle

底層 Android 實例的帳號。

(繼承來源 Object)
Instance

會回傳目前預設地點的整理器。

IsFrozen

判斷物體是否被凍結。

JniIdentityHashCode

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

(繼承來源 Object)
JniManagedPeerState

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

(繼承來源 JavaObject)
JniPeerMembers

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

MaxVariable

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

PeerReference

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

(繼承來源 Object)
Strength

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

TailoredSet

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

ThresholdClass

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

ThresholdType

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

UCAVersion

[加護病房]回傳此整理器物件的 UCA 版本。

VariableTop

[加護病房]取得 Collator 的可變頂值。

Version

[加護病房]回傳這個整理器物件的版本。

方法

名稱 Description
Clone()

複製人整理器。

CloneAsThawed()

提供複製人行動的規定。

Compare(Object, Object)

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

Compare(String, String)

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

Construct(JniObjectReference, JniObjectReferenceOptions)

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

(繼承來源 JavaObject)
Dispose()

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

(繼承來源 Object)
Dispose(Boolean)

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

(繼承來源 Object)
DisposeUnlessReferenced()

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

(繼承來源 JavaObject)
Equals(Object)

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

(繼承來源 JavaObject)
Equals(Object)

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

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

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

Freeze()

會凍結整理器。

GetAvailableLocales()

回傳安裝整合器的 locale 物件集合。

GetAvailableULocales()

<strong>[icu]</strong> 回傳安裝整合器的 ULocale 物件位置集合。

GetCollationKey(String)

將字串轉換為適合高效重複比較的 CollationKey。

GetDisplayName(Locale, Locale)

<strong>[icu]</strong> 回傳 objectLocale 的整理器名稱,並對 displayLocale 進行區域化。

GetDisplayName(Locale)

<strong>[iccu]</strong> 回傳 objectLocale 的整理器名稱,預設 locale 是本地化 DISPLAY 的。

GetDisplayName(ULocale, ULocale)

<strong>[icu]</strong> 回傳 objectLocale 的整理器名稱,並對 displayLocale 進行區域化。

GetDisplayName(ULocale)

<strong>[iccu]</strong> 回傳 objectLocale 的整理器名稱,預設 locale 是本地化 DISPLAY 的。

GetEquivalentReorderCodes(Int32)

檢索所有與該重排序碼分組的重排序碼。

GetFunctionalEquivalent(String, ULocale, Boolean[])

<strong>[icu]</strong> 回傳該指定地點的功能等價位置,該地點相對於特定關鍵字,適用於該整合服務。

GetFunctionalEquivalent(String, ULocale)

<strong>[icu]</strong> 回傳該指定地點的功能等價位置,該地點相對於特定關鍵字,適用於該整合服務。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetInstance(Locale)

回傳想要地點的整理器。

GetInstance(ULocale)

<strong>[icu]</strong> 回傳所需地點的整理器。

GetKeywords()

<strong>[icu]</strong> 回傳所有與彙整相關的可能關鍵字陣列。

GetKeywordValues(String)

<strong>[iccu]</strong> 給定一個關鍵字,回傳一個包含該關鍵字目前正在使用的所有值的陣列。

GetKeywordValuesForLocale(String, ULocale, Boolean)

<strong>[icu]</strong> 給定一個鍵和一個位置,會回傳一組以偏好順序排列的字串值,這會產生差異。

GetReorderCodes()

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

JavaFinalize()
已淘汰.

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

(繼承來源 Object)
Notify()

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

(繼承來源 Object)
NotifyAll()

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

(繼承來源 Object)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetMaxVariable(Int32)

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

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

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

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

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)

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

IFreezable.CloneAsThawed()

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

IFreezable.Freeze()

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

IJavaPeerable.Disposed()

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

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

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

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

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

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

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

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

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

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

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

<強力>加護病房增強</強力> 加護病房取代 java.text.Collator了。

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

適用於