public static final class ULocale.Builder
extends Object
java.lang.Object | |
↳ | android.icu.util.ULocale.Builder |
Builder
用于根据setters配置的值构建ULocale
实例。 与ULocale
构造函数不同, Builder
检查由setter配置的值是否满足ULocale
类定义的语法要求。 由ULocale
创建的ULocale
对象Builder
良好,可以转换为格式良好的IETF BCP 47语言标签,而不会丢失信息。
注意: ULocale
类不对变体提供任何语法限制,而BCP 47要求每个变体子标签为5至8个字母数字或单个数字,后跟3个字母数字。 方法setVariant
针对不满足此限制的变体抛出IllformedLocaleException
。 如果有必要支持这种变体,请使用ULocale构造函数。 但是,请记住,一个ULocale
对象创建这样,当转换为BCP 47语言标签可能会失去变种的信息。
下面的例子说明如何创建一个 Locale
与对象 Builder
。
ULocale aLocale = new Builder().setLanguage("sr").setScript("Latn").setRegion("RS").build();
建筑商可以重复使用; clear()
所有字段重置为其默认值。
也可以看看:
Public constructors |
|
---|---|
ULocale.Builder() 构造一个空的生成器。 |
Public methods |
|
---|---|
ULocale.Builder |
addUnicodeLocaleAttribute(String attribute) 添加一个unicode语言环境属性(如果尚不存在),否则不起作用。 |
ULocale |
build() 返回从此构建器上设置的字段创建的实例 |
ULocale.Builder |
clear() 将构建器重置为其初始空状态。 |
ULocale.Builder |
clearExtensions() 将扩展名重置为其初始空状态。 |
ULocale.Builder |
removeUnicodeLocaleAttribute(String attribute) 删除unicode语言环境属性(如果存在),否则不起作用。 |
ULocale.Builder |
setExtension(char key, String value) 设置给定键的扩展名。 |
ULocale.Builder |
setLanguage(String language) 设置语言。 |
ULocale.Builder |
setLanguageTag(String languageTag) 重置Builder以匹配提供的IETF BCP 47语言标签。 |
ULocale.Builder |
setLocale(ULocale locale) 重置 |
ULocale.Builder |
setRegion(String region) 设置区域。 |
ULocale.Builder |
setScript(String script) 设置脚本。 |
ULocale.Builder |
setUnicodeLocaleKeyword(String key, String type) 为给定键设置Unicode区域设置关键字类型。 |
ULocale.Builder |
setVariant(String variant) 设置变体。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
ULocale.Builder addUnicodeLocaleAttribute (String attribute)
添加一个unicode语言环境属性(如果尚不存在),否则不起作用。 该属性不能为空,且必须格式良好或引发异常。
Parameters | |
---|---|
attribute |
String : the attribute |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
NullPointerException |
if attribute is null |
IllformedLocaleException |
if attribute is ill-formed |
也可以看看:
ULocale build ()
返回从此构建器上设置的字段创建的 ULocale
的实例。
Returns | |
---|---|
ULocale |
a new Locale |
ULocale.Builder clear ()
将构建器重置为其初始空状态。
Returns | |
---|---|
ULocale.Builder |
this builder |
ULocale.Builder clearExtensions ()
将扩展名重置为其初始空状态。 语言,脚本,区域和变体不变。
Returns | |
---|---|
ULocale.Builder |
this builder |
也可以看看:
ULocale.Builder removeUnicodeLocaleAttribute (String attribute)
删除unicode语言环境属性(如果存在),否则不起作用。 该属性不能为空,且必须格式良好或引发异常。
删除的属性比较是不区分大小写的。
Parameters | |
---|---|
attribute |
String : the attribute |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
NullPointerException |
if attribute is null |
IllformedLocaleException |
if attribute is ill-formed |
也可以看看:
ULocale.Builder setExtension (char key, String value)
设置给定键的扩展名。 如果该值为空或空字符串,则扩展名将被删除。 否则,扩展必须格式良好或引发异常。
注意:密钥UNICODE_LOCALE_EXTENSION
('u')用于Unicode区域设置扩展。 为此键设置值将替换扩展中定义的任何现有Unicode区域设置键/类型对。
注意:密钥PRIVATE_USE_EXTENSION
('x')用于私人使用代码。 为了形成良好,这个键的值只需要有一到八个字母数字字符的子标签,而不是一般情况下的二到八个。
Parameters | |
---|---|
key |
char : the extension key |
value |
String : the extension value |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
IllformedLocaleException |
if key is illegal or value is ill-formed |
ULocale.Builder setLanguage (String language)
设置语言。 如果language
是空字符串或null,则删除此Builder
的语言。 否则,语言必须是well-formed或抛出异常。
典型的语言值是ISO639中定义的两个或三个字母的语言代码。
Parameters | |
---|---|
language |
String : the language |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
IllformedLocaleException |
if language is ill-formed |
ULocale.Builder setLanguageTag (String languageTag)
重置Builder以匹配提供的IETF BCP 47语言标签。 丢弃现有的状态。 空和空字符串导致构建器被重置,如clear()
。 在处理之前,Grandfathered标签(请参阅forLanguageTag(String)
)会转换为规范形式。 否则,语言标签必须格式良好(请参阅ULocale
)或引发异常(与ULocale.forLanguageTag
不同,它只是丢弃标签中的不ULocale.forLanguageTag
和后续部分)。
Parameters | |
---|---|
languageTag |
String : the language tag |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
IllformedLocaleException |
if languageTag is ill-formed |
也可以看看:
ULocale.Builder setLocale (ULocale locale)
重置Builder
以匹配提供的locale
。 现有状态被丢弃。
区域设置的所有字段必须格式良好,请参阅 Locale
。
带有任何不合格字段的区域会导致引发 IllformedLocaleException
。
Parameters | |
---|---|
locale |
ULocale : the locale |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
IllformedLocaleException |
if locale has any ill-formed fields. |
NullPointerException |
if locale is null. |
ULocale.Builder setRegion (String region)
设置区域。 如果区域为空或空字符串,则删除此Builder
的区域。 否则,该地区必须格式良好或引发异常。
典型的区域值是两个字母的ISO 3166代码或三位UN M.49区域代码。
Locale
创建的 Builder
的国家/地区值总是标准化为大写。
Parameters | |
---|---|
region |
String : the region |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
IllformedLocaleException |
if region is ill-formed |
ULocale.Builder setScript (String script)
设置脚本。 如果script
为空或空字符串,则删除此Builder
的脚本。 否则,脚本必须格式良好或引发异常。
典型的脚本值是由ISO 15924定义的四字母脚本代码。
Parameters | |
---|---|
script |
String : the script |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
IllformedLocaleException |
if script is ill-formed |
ULocale.Builder setUnicodeLocaleKeyword (String key, String type)
为给定键设置Unicode区域设置关键字类型。 如果该类型为空,则会删除Unicode关键字。 否则,密钥必须是非空的,并且密钥和类型必须格式良好或引发异常。
键和类型转换为小写。
注意 :通过 setExtension(char, String)
设置'u'扩展 setExtension(char, String)
替换扩展名中定义的所有Unicode区域设置关键字。
Parameters | |
---|---|
key |
String : the Unicode locale key |
type |
String : the Unicode locale type |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
IllformedLocaleException |
if key or type is ill-formed |
NullPointerException |
if key is null |
也可以看看:
ULocale.Builder setVariant (String variant)
设置变体。 如果variant为空或空字符串,则删除此Builder
的变体。 否则,它必须包含一个或多个格式正确的子标签,否则会引发异常。
注:此方法检查variant
满足IETF BCP 47变体子标签的语法要求,并将该值标准化为小写字母。 但是, ULocale
类不会对变体施加任何语法限制。 要设置这种变体,请使用ULocale构造函数。
Parameters | |
---|---|
variant |
String : the variant |
Returns | |
---|---|
ULocale.Builder |
This builder. |
Throws | |
---|---|
IllformedLocaleException |
if variant is ill-formed |