MessagePattern 類別

定義

解析並表示 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
繼承
MessagePattern
屬性
實作

備註

解析並表示 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 代表。 choiceStyle 中,ARG_SELECTOR 帶有 '<'、'#' 或小於等號(U+2264)。 <在>複數風格中,第一個可選的數字部分為「offset:」值。 每個(ARG_SELECTOR、訊息)對之間的可選數字部分是明確數字選擇器的值,例如「=2」,否則選擇器為非數字識別碼。 <li>REPLACE_NUMBER 部分只能出現在複數 style 的直接子訊息中。 </ul>

此職業不適合公開子職業。

Java 文件 android.icu.text.MessagePattern

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

建構函式

名稱 Description
MessagePattern()

建立一個空的 MessagePattern,預設為 ApostropheMode。

MessagePattern(MessagePattern+ApostropheMode)

解析並表示 ICU MessageFormat 模式。

MessagePattern(String)

建立一個預設 ApostropheMode 的 MessagePattern,並解析 MessageFormat 模式字串。

欄位

名稱 Description
ArgNameNotNumber

當字串是有效的「模式識別碼」但不是數字時,回傳值 #validateArgumentName(String)

ArgNameNotValid

當字串無效時,回傳 的 #validateArgumentName(String) 值。

NoNumericValue

當某個零件沒有定義數值時,getNumericValue(Part) 會回傳特殊值。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
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)

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

解析並表示 ICU MessageFormat 模式。

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

適用於