public interface SymbolTable
android.icu.text.SymbolTable |
定义查找协议和解析符号名称的接口。
UnicodeSet使用此接口来解析出现在设置模式中的$ Variable样式引用。 RBBI和Transliteration都独立实现了这个接口。
符号表维护两种映射。 第一个是符号名称和它们的值之间。 例如,如果具有名称“start”的变量被设置为值“alpha”(可能,虽然不一定,通过诸如“$ start = alpha”的表达式),则调用查找(“start”)将返回char []数组['a','l','p','h','a']。
第二种映射是在字符值和UnicodeMatcher对象之间进行的。 这由RuleBasedTransliterator使用,它使用专用区域中的字符来表示对象,例如UnicodeSets。 如果U + E015映射到UnicodeSet [az],则lookupMatcher(0xE015)将返回UnicodeSet [az]。
最后,符号表定义符号名称的解析行为。 所有符号名称都以SYMBOL_REF字符开头。 当解析器遇到这个字符时,它会调用parseReference()并紧跟在SYMBOL_REF之后的位置。 符号表解析名称(如果有的话)并返回。
Constants |
|
---|---|
char |
SYMBOL_REF 符号引用名称前面的字符。 |
Public methods |
|
---|---|
abstract char[] |
lookup(String s) 查找与此字符串关联的字符并将其返回。 |
abstract UnicodeMatcher |
lookupMatcher(int ch) 查找与给定字符关联的UnicodeMatcher,并返回它。 |
abstract String |
parseReference(String text, ParsePosition pos, int limit) 从给定位置开始解析给定字符串中的符号引用名称。 |
char[] lookup (String s)
查找与此字符串关联的字符并将其返回。 如果不存在这样的名称,则返回null 。 结果数组可能长度为零。
Parameters | |
---|---|
s |
String : the symbolic name to lookup |
Returns | |
---|---|
char[] |
a char array containing the name's value, or null if there is no mapping for s. |
UnicodeMatcher lookupMatcher (int ch)
查找与给定字符关联的UnicodeMatcher,并返回它。 如果找不到,则返回null 。
Parameters | |
---|---|
ch |
int : a 32-bit code point from 0 to 0x10FFFF inclusive. |
Returns | |
---|---|
UnicodeMatcher |
the UnicodeMatcher object represented by the given character, or null if there is no mapping for ch. |
String parseReference (String text, ParsePosition pos, int limit)
从给定位置开始解析给定字符串中的符号引用名称。 如果没有找到有效的符号引用名称,则返回null并且保持位置不变。 也就是说,如果pos处的字符不能开始名称,或者pos位于text.length()或之后,则返回null。 这表示一个孤立的SYMBOL_REF字符。
Parameters | |
---|---|
text |
String : the text to parse for the name |
pos |
ParsePosition : on entry, the index of the first character to parse. This is the character following the SYMBOL_REF character. On exit, the index after the last parsed character. If the parse failed, pos is unchanged on exit. |
limit |
int : the index after the last character to be parsed. |
Returns | |
---|---|
String |
the parsed name, or null if there is no valid symbolic name at the given position. |