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“part”, #getLimitPartIndex(int) 有效返回相应_LIMIT“part”的索引。

“parts”列表:

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>Literal 输出文本不直接由“parts”表示,而是在消息的各个部分之间访问,从一个部分的 getLimit()到下一部分的 getIndex()。 <li>ARG_START.CHOICE 代表 ArgType CHOICE 的 ARG_START 部件。 li在 choiceStyle 中,ARG_SELECTOR具有“<”、“#”或小于或等于符号(U+2264)。 <li>在 pluralStyle 中,第一个可选数字部件具有“offset:”值。 每个(ARG_SELECTOR,消息)对之间的可选数字部分是显式数字选择器(如“=2”)的值,否则选择器是非数值标识符。 <li>REPLACE_NUMBER 部件只能在 pluralStyle 的即时子消息中发生。 </ul>

此类不适用于公共子类。

Java文档android.icu.text.MessagePattern

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

构造函数

名称 说明
MessagePattern()

使用默认的 ApostropheMode 构造空 MessagePattern。

MessagePattern(MessagePattern+ApostropheMode)

分析和表示 ICU MessageFormat 模式。

MessagePattern(String)

使用默认 ApostropheMode 构造 MessagePattern 并分析 MessageFormat 模式字符串。

字段

名称 说明
ArgNameNotNumber

#validateArgumentName(String) 字符串是有效的“模式标识符”而不是数字时返回值。

ArgNameNotValid

字符串无效时的返回值 #validateArgumentName(String)

NoNumericValue

如果未为部件定义数值,则 getNumericValue(Part) 返回的特殊值。

属性

名称 说明
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)

方法

名称 说明
AutoQuoteApostropheDeep()

返回已分析模式字符串的版本,其中每个 ASCII 撇号(转义)(如果尚未转义),如果未解释为引用语法。

Clear()

清除此 MessagePattern。

ClearPatternAndSetApostropheMode(MessagePattern+ApostropheMode)

分析和表示 ICU MessageFormat 模式。

Clone()

创建并返回此对象的副本。

CloneAsThawed()

创建并返回此对象的未冻结副本。

CountParts()

返回通过分析模式字符串创建的“parts”数。

Dispose()

分析和表示 ICU MessageFormat 模式。

(继承自 Object)
Dispose(Boolean)

分析和表示 ICU MessageFormat 模式。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
Freeze()

冻结此对象,使其不可变且线程安全。

GetApostropheMode()

分析和表示 ICU MessageFormat 模式。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetLimitPartIndex(Int32)

返回 ARG 的索引 |对应于 ARG 的MSG_LIMIT部分 |MSG_START一开始。

GetNumericValue(MessagePattern+Part)

分析和表示 ICU MessageFormat 模式。

GetPart(Int32)

分析和表示 ICU MessageFormat 模式。

GetPartType(Int32)

分析和表示 ICU MessageFormat 模式。

GetPatternIndex(Int32)

返回指定模式“part”的模式索引。

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<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

名称 说明
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)

扩展方法

名称 说明
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端有效。

适用于