PluralRules 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義將非負數值映射到一小組關鍵字的規則。
[Android.Runtime.Register("android/icu/text/PluralRules", ApiSince=24, DoNotGenerateAcw=true)]
public class PluralRules : Java.Lang.Object, IDisposable, Java.IO.ISerializable
[<Android.Runtime.Register("android/icu/text/PluralRules", ApiSince=24, DoNotGenerateAcw=true)>]
type PluralRules = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
定義將非負數值映射到一小組關鍵字的規則。
規則是由文字描述構成,內容包含一系列關鍵字與條件。 該 #select 方法依序檢查每個條件,並回傳第一個與該數字相符條件的關鍵字。 若無匹配 #KEYWORD_OTHER ,則回傳。
複數規則物件是不可變的。 它包含取樣值的快取,但這些快取是同步的。
PluralRules 是可序列化的,因此可用於格式化器,而格式化器本身也可序列化。
欲了解更多資訊、細節及撰寫規則的技巧,請參閱 LDML 規範,第 3.5 部分 語言複數規則
範例:
"one: n is 1; few: n in 2..4"
這定義了兩條規則,分別是「一」和「少數」。 「一」的條件是「n 是 1」,表示該數字必須等於 1 才能通過此條件。 「少」的條件是「n 在 2..4」中,意即該數字必須介於 2 到 4 之間,且為整數,條件才會成立。 其他所有號碼依預設規則被賦予關鍵字「other」。
"zero: n is 0; one: n is 1; zero: n mod 100 in 1..19"
這說明同一個關鍵字可以被多次定義。 每條規則依序檢視,第一個條件通過的關鍵詞即為返回的。 另外注意,最後一條規則中對 n 應用了一個模量。 因此,其條件對119、219、319......
"one: n is 1; few: n mod 10 in 2..4 and n mod 100 not in 12..14"
這說明了合取與否定。 「少」的條件包含兩部分,兩者都必須滿足:「n mod 10 in 2..4」和「n mod 100 not in 12..14」。 第一部分在測試前對 n 施加模數,如前例所示。 第二部分則採用不同的模數,並使用否定,因此它匹配 所有不 屬於12、13、14、112、113、114、212、213、214......的數字。
Syntax:
rules = rule (';' rule)*
rule = keyword ':' condition
keyword = <identifier>
condition = and_condition ('or' and_condition)*
and_condition = relation ('and' relation)*
relation = not? expr not? rel not? range_list
expr = ('n' | 'i' | 'f' | 'v' | 't') (mod value)?
not = 'not' | '!'
rel = 'in' | 'is' | '=' | '≠' | 'within'
mod = 'mod' | '%'
range_list = (range | value) (',' range_list)*
value = digit+
digit = 0|1|2|3|4|5|6|7|8|9
range = value'..'value
每個 <b>not</b> 詞都會顛倒其意義;但不應有超過一個。
i、f、t 和 v 的值定義如下:
<ul><li>i 是整數數字。</li><li f>為可見的十進位數字,作為整數。</li><li t>為可見的十進位數字——不含尾數零——作為整數。</li><li>v 表示可見分數數字的數量。</li><li j>定義為僅匹配整數。 也就是說,j 是 3 失敗,若 v != 0(例如 3.1 或 3.0)。</li></ul>
以下表格中舉例:
<表格邊框='1' style=“border-collapse: collapse”><tbody><tr><th>n</th><th>i</th><th>f/th<>th< v></th></tr><tr><td>1.0</td><td>1</td><td align=“right”0></td><td>1</td></tr><tr td><>1.00</td><td>1</tdTD 對齊=“右”0></TD><TD>2</TD></TR><TR TD><>1.3</TD><TD>1</TDD><TD 對齊=“Right”>3</TDD><TD 1></TD></TR><TR><TD>1.03</TD><>TD 1</TD><TD 對齊=“Right”>3</TDD><TD>2</TD></TR TR><><><TD 1.23/TDD><>TD 1</TD><TD align=“Right”>23</TD><TD>2</TD></TR></Tbody></Table><>
「識別碼」是一串不具備 Unicode Pattern_Syntax或Pattern_White_Space屬性的字元序列。
「in」與「within」的差別在於,「in」只包含指定範圍內的整數,而「within」則包含所有值。 在完全由數值組成的range_list中使用「within」與使用「in」是相同的(這不是錯誤)。
Java 文件 android.icu.text.PluralRules。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| PluralRules(IntPtr, JniHandleOwnership) |
定義將非負數值映射到一小組關鍵字的規則。 |
欄位
| 名稱 | Description |
|---|---|
| KeywordFew |
「paucal」或其他特殊複數形式的通稱。 |
| KeywordMany |
阿拉伯語(11至99)複數形式的通稱。 |
| KeywordOne |
單數複數形式的通稱。 |
| KeywordOther |
預設複數形式的通用名稱。 |
| KeywordTwo |
「雙數」複數形式的通稱。 |
| KeywordZero |
「零」複數形式的通稱。 |
| NoUniqueValue |
當沒有唯一可回傳的值時,會回傳 的 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Default |
預設規則是接受任意數字並返回 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| JniPeerMembers |
定義將非負數值映射到一小組關鍵字的規則。 |
| Keywords |
回傳此 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
定義將非負數值映射到一小組關鍵字的規則。 |
| ThresholdType |
定義將非負數值映射到一小組關鍵字的規則。 |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| CreateRules(String) |
若描述可解析,則會從描述中建立 PluralRules,否則回傳 null。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| Equals(Object) |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| Equals(PluralRules) |
若右向座標等於此,則返回為真。 |
| ForLocale(Locale, PluralRules+PluralType) |
提供對特定區域及複數類型預先定義的複數規則存取。 |
| ForLocale(Locale) |
提供對給定 |
| ForLocale(ULocale, PluralRules+PluralType) |
提供對特定地區預先定義的複數規則及複數類型存取。 |
| ForLocale(ULocale) |
提供對特定地點預先定義基數 |
| GetAllKeywordValues(String) |
回傳所有觸發此關鍵字的值,若數值數量無限則為空值。 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| GetSamples(String) |
回傳一個整數值清單,對於這些值,當 select() 會回傳該關鍵字,若關鍵字未定義則回傳 null。 |
| GetUniqueKeywordValue(String) |
回傳該關鍵字所匹配的唯一值,或 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| ParseDescription(String) |
解析複數規則描述並回傳複數規則。 |
| Select(Double) |
給定一個浮點數,回傳適用於該數字的第一條規則關鍵字。 |
| Select(FormattedNumber) |
給定格式化的數字,回傳第一條規則中適用於該數字的關鍵字。 |
| Select(FormattedNumberRange) |
給定格式化的數字範圍,回傳該範圍的整體複數形式。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| 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() |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
定義將非負數值映射到一小組關鍵字的規則。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
定義將非負數值映射到一小組關鍵字的規則。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
定義將非負數值映射到一小組關鍵字的規則。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |