MessagePattern 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
解析並表示 ICU MessageFormat 模式。
[Android.Runtime.Register("android/icu/text/MessagePattern", ApiSince=24, DoNotGenerateAcw=true)]
public sealed class MessagePattern : Java.Lang.Object, Android.Icu.Util.IFreezable, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/icu/text/MessagePattern", ApiSince=24, DoNotGenerateAcw=true)>]
type MessagePattern = class
inherit Object
interface IFreezable
interface ICloneable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
解析並表示 ICU MessageFormat 模式。 同時也處理 ChoiceFormat、PluralFormat 和 SelectFormat 的圖案。 用於這些類別的實作,以及訊息驗證、翻譯和格式轉換的工具中。
解析器處理所有與識別訊息參數相關的語法。 這包括「複雜」參數,其樣式字串包含巢狀的 MessageFormat 模式子字串。 對於「簡單」參數(沒有巢狀 MessageFormat 模式子串),參數樣式不會再被解析。
解析器處理命名與編號的訊息參數,並允許在同一則訊息中同時處理兩者。
一旦成功解析出一個模式,再用 countParts()、getPart() 及相關方法遍歷解析後的資料。
資料在邏輯上代表一棵解析樹,但儲存與存取時則以「部分」清單的形式儲存與存取,以便快速且簡單的解析,並減少物件配置。 參數與巢狀訊息最好透過遞迴處理。 對於每個_START「零件」, #getLimitPartIndex(int) 有效率地回傳對應_LIMIT「零件」的索引。
「零件」列表:
message = MSG_START (SKIP_SYNTAX | INSERT_CHAR | REPLACE_NUMBER | argument)* MSG_LIMIT
argument = noneArg | simpleArg | complexArg
complexArg = choiceArg | pluralArg | selectArg
noneArg = ARG_START.NONE (ARG_NAME | ARG_NUMBER) ARG_LIMIT.NONE
simpleArg = ARG_START.SIMPLE (ARG_NAME | ARG_NUMBER) ARG_TYPE [ARG_STYLE] ARG_LIMIT.SIMPLE
choiceArg = ARG_START.CHOICE (ARG_NAME | ARG_NUMBER) choiceStyle ARG_LIMIT.CHOICE
pluralArg = ARG_START.PLURAL (ARG_NAME | ARG_NUMBER) pluralStyle ARG_LIMIT.PLURAL
selectArg = ARG_START.SELECT (ARG_NAME | ARG_NUMBER) selectStyle ARG_LIMIT.SELECT
choiceStyle = ((ARG_INT | ARG_DOUBLE) ARG_SELECTOR message)+
pluralStyle = [ARG_INT | ARG_DOUBLE] (ARG_SELECTOR [ARG_INT | ARG_DOUBLE] message)+
selectStyle = (ARG_SELECTOR message)+
<ul><li>字面輸出文字並非直接以「部分」表示,而是在訊息的各個部分之間存取,從一個部分的 getLimit() 到下一部分的 getIndex()。
<li>ARG_START.CHOICE 代表 ARG_START 部分,ArgType CHOICE 代表。
此職業不適合公開子職業。
Java 文件 android.icu.text.MessagePattern。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| MessagePattern() |
建立一個空的 MessagePattern,預設為 ApostropheMode。 |
| MessagePattern(MessagePattern+ApostropheMode) |
解析並表示 ICU MessageFormat 模式。 |
| MessagePattern(String) |
建立一個預設 ApostropheMode 的 MessagePattern,並解析 MessageFormat 模式字串。 |
欄位
| 名稱 | Description |
|---|---|
| ArgNameNotNumber |
當字串是有效的「模式識別碼」但不是數字時,回傳值 |
| ArgNameNotValid |
當字串無效時,回傳 的 |
| NoNumericValue |
當某個零件沒有定義數值時,getNumericValue(Part) 會回傳特殊值。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| HasNamedArguments |
解析後的模式有像 {first_name} 這樣的命名參數嗎? |
| HasNumberedArguments |
解析模式是否有像 {2}? |
| IsFrozen |
判斷該物體是否被凍結(不變)。 |
| JniIdentityHashCode |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| JniPeerMembers |
解析並表示 ICU MessageFormat 模式。 |
| PatternString |
解析並表示 ICU MessageFormat 模式。 |
| PeerReference |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
方法
| 名稱 | Description |
|---|---|
| AutoQuoteApostropheDeep() |
回傳一個解析模式字串的版本,若未加倍,則每個 ASCII 撇號會被加倍(跳脫),且未被解讀為引用語法。 |
| Clear() |
清除此訊息模式。 |
| ClearPatternAndSetApostropheMode(MessagePattern+ApostropheMode) |
解析並表示 ICU MessageFormat 模式。 |
| Clone() |
建立並回傳此物件的副本。 |
| CloneAsThawed() |
建立並回傳這個物件的解凍副本。 |
| CountParts() |
回傳解析模式字串所產生的「部分」數量。 |
| Dispose() |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| Dispose(Boolean) |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| Freeze() |
凍結此物件,使其不變且安全執行緒。 |
| GetApostropheMode() |
解析並表示 ICU MessageFormat 模式。 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| GetLimitPartIndex(Int32) |
回傳 ARG| 的索引MSG_LIMIT部分對應ARG|MSG_START一開始。 |
| GetNumericValue(MessagePattern+Part) |
解析並表示 ICU MessageFormat 模式。 |
| GetPart(Int32) |
解析並表示 ICU MessageFormat 模式。 |
| GetPartType(Int32) |
解析並表示 ICU MessageFormat 模式。 |
| GetPatternIndex(Int32) |
回傳指定模式「部分」的模式索引。 |
| GetPluralOffset(Int32) |
回傳 PluralFormat 參數的「offset:」值,若未指定參數則為 0。 |
| GetSubstring(MessagePattern+Part) |
解析並表示 ICU MessageFormat 模式。 |
| JavaFinalize() |
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| Parse(String) |
解析 MessageFormat 模式字串。 |
| ParseChoiceStyle(String) |
解析 ChoiceFormat 的模式字串。 |
| ParsePluralStyle(String) |
解析 PluralFormat 的模式字串。 |
| ParseSelectStyle(String) |
解析 SelectFormat 的模式字串。 |
| PartSubstringMatches(MessagePattern+Part, String) |
解析並表示 ICU MessageFormat 模式。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| ToArray<T>() |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| ValidateArgumentName(String) |
驗證並解析參數名稱或參數編號字串。 |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IFreezable.CloneAsThawed() |
解析並表示 ICU MessageFormat 模式。 |
| IFreezable.Freeze() |
解析並表示 ICU MessageFormat 模式。 |
| IJavaPeerable.Disposed() |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| IJavaPeerable.Finalized() |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| IJavaPeerable.JniManagedPeerState |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
解析並表示 ICU MessageFormat 模式。 (繼承來源 Object) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
解析並表示 ICU MessageFormat 模式。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |