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