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) |
|
|---|---|
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 |