public static final class Locale.Builder extends Object
Builder
用于从由setter Locale
的值构建Locale的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()
将所有字段重置为其默认值。
Locale.forLanguageTag(java.lang.String)
Constructor and Description |
---|
Builder()
构造一个空的构建器。
|
Modifier and Type | Method and Description |
---|---|
Locale.Builder |
addUnicodeLocaleAttribute(String attribute)
添加unicode区域设置属性(如果尚未存在),否则不起作用。
|
Locale |
build()
返回从此构建器上设置的字段创建的
Locale 实例。
|
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)
重置生成器以匹配提供的IETF BCP 47语言标记。
|
Locale.Builder |
setLocale(Locale locale)
重置
Builder 以匹配提供的
locale 。
|
Locale.Builder |
setRegion(String region)
设置区域。
|
Locale.Builder |
setScript(String script)
设置脚本。
|
Locale.Builder |
setUnicodeLocaleKeyword(String key, String type)
设置给定键的Unicode区域设置关键字类型。
|
Locale.Builder |
setVariant(String variant)
设置变体。
|
public Locale.Builder setLocale(Locale locale)
Builder
以匹配提供的locale
。
现有状态被丢弃。
任何形式不IllformedLocaleException
地区都会引起IllformedLocaleException
,除了以下三种因为兼容性原因被接受的情况除外:
locale
- 语言环境
IllformedLocaleException
- 如果
locale
有任何
locale
字段。
NullPointerException
- 如果
locale
为空。
public Locale.Builder setLanguageTag(String languageTag)
clear()
。
Grandfathered标签(参见Locale.forLanguageTag(java.lang.String)
)在处理之前被转换为其规范形式。
否则,语言标签必须格式正确(请参阅Locale
)或抛出异常(不像Locale.forLanguageTag
,它只丢弃标签的不正确的部分)。
languageTag
- 语言标签
IllformedLocaleException
- 如果
languageTag
是
languageTag
Locale.forLanguageTag(String)
public Locale.Builder setLanguage(String language)
language
是空字符串或null,则此Builder
中的语言Builder
被删除。
否则,该语言必须为well-formed或抛出异常。
典型的语言值是ISO639中定义的两个或三个字母的语言代码。
language
- 语言
IllformedLocaleException
- 如果
language
是不正确的
public Locale.Builder setScript(String script)
script
为空或空字符串,则此Builder
中的脚本Builder
被删除。
否则脚本必须为well-formed或引发异常。
典型的脚本值是由ISO 15924定义的四字母脚本代码。
script
- 脚本
IllformedLocaleException
- 如果
script
不正确
public Locale.Builder setRegion(String region)
Builder
中的区域。
否则,该区域必须为well-formed或抛出异常。
典型的区域值是双字母ISO 3166代码或三位数UN M.49区号。
由Locale
创建的Builder
中的国家值总是归一化为大写。
region
- 该地区
IllformedLocaleException
- 如果
region
是
region
public Locale.Builder setVariant(String variant)
Builder
中的变体。
否则,它必须由一个或多个well-formed子标记组成,或抛出异常。
注意:此方法检查variant
是否满足IETF BCP 47变体子标记的语法要求,并将值归一化为小写字母。 但是, Locale
类不对变体施加任何句法限制,而Locale
中的变体值区分大小写。 要设置此类变体,请使用Locale构造函数。
variant
- 变体
IllformedLocaleException
- 如果
variant
是不正确的
public Locale.Builder setExtension(char key, String value)
注意:关键字UNICODE_LOCALE_EXTENSION
('u')用于Unicode语言环境扩展。 设置此键的值将替换扩展中定义的所有现有Unicode区域设置键/类型对。
注意:密钥PRIVATE_USE_EXTENSION
('x')用于私人使用代码。 为了形式良好,该键的值只需要具有一到八个字母数字字符的子标签,而不是一般情况下的两到八个字符。
key
- 扩展键
value
- 扩展值
IllformedLocaleException
- 如果
key
是非法的,或者
value
是错误的
setUnicodeLocaleKeyword(String, String)
public Locale.Builder setUnicodeLocaleKeyword(String key, String type)
键和类型转换为小写。
注意 :通过setExtension(char, java.lang.String)
设置“u”扩展名将使用扩展名中定义的所有Unicode区域设置替换所有Unicode区域设置关键字。
key
- Unicode区域设置键
type
- Unicode区域设置类型
IllformedLocaleException
- 如果
key
或
type
是
type
NullPointerException
- 如果
key
为空
setExtension(char, String)
public Locale.Builder addUnicodeLocaleAttribute(String attribute)
attribute
- 属性
NullPointerException
- 如果
attribute
为空
IllformedLocaleException
- 如果
attribute
是
attribute
setExtension(char, String)
public Locale.Builder removeUnicodeLocaleAttribute(String attribute)
attribute
- 属性
NullPointerException
- 如果
attribute
为空
IllformedLocaleException
- 如果
attribute
是不正确的
setExtension(char, String)
public Locale.Builder clear()
public Locale.Builder clearExtensions()
setExtension(char, String)
public Locale build()
Locale
实例。
这适用于构建区域设置时在Locale.forLanguageTag(java.lang.String)
中列出的转换 。 (Grandfathered标签在setLanguageTag(java.lang.String)
处理。)