- java.lang.Object
-
- java.util.Locale.Builder
-
- Enclosing class:
- Locale
public static final class Locale.Builder extends Object
Builder
用于从setter配置的值构建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()
所有字段重置为其默认值。- 从以下版本开始:
- 1.7
- 另请参见:
-
Locale.forLanguageTag(java.lang.String)
-
-
构造方法摘要
构造方法 构造器 描述 Builder()
构造一个空的Builder。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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)
重置Builder以匹配提供的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)
设置变体。
-
-
-
方法详细信息
-
setLocale
public Locale.Builder setLocale(Locale locale)
重置Builder
以匹配提供的locale
。 现有状态被丢弃。区域设置的所有字段必须格式正确,请参阅
Locale
。具有任何
IllformedLocaleException
字段的语言环境会导致抛出IllformedLocaleException
,但出于兼容性原因接受以下三种情况除外:- Locale(“ja”,“JP”,“JP”)被视为“ja-JP-u-ca-japanese”
- Locale(“th”,“TH”,“TH”)被视为“th-TH-u-nu-thai”
- 区域设置(“no”,“NO”,“NY”)被视为“nn-NO”
- 参数
-
locale
- 语言环境 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果locale
有任何不良locale
字段。 -
NullPointerException
- 如果locale
为空。
-
setLanguageTag
public Locale.Builder setLanguageTag(String languageTag)
重置Builder以匹配提供的IETF BCP 47语言标记。 丢弃现有状态。 Null和空字符串会导致构建器重置,如clear()
。 Grandfathered标签(请参阅Locale.forLanguageTag(java.lang.String)
)在处理之前转换为其规范形式。 否则,语言标记必须格式正确(参见Locale
)或抛出异常(与Locale.forLanguageTag
不同,Locale.forLanguageTag
丢弃Locale.forLanguageTag
和跟随标记的部分)。- 参数
-
languageTag
- 语言标记 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果languageTag
- 另请参见:
-
Locale.forLanguageTag(String)
-
setLanguage
public Locale.Builder setLanguage(String language)
- 参数
-
language
- 该语言 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果language
-
setScript
public Locale.Builder setScript(String script)
- 参数
-
script
- 该脚本 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果script
-
setRegion
public Locale.Builder setRegion(String region)
设置区域。 如果region为null或空字符串,则删除此Builder
的区域。 否则,该区域必须为well-formed或抛出异常。典型的区域值是双字母ISO 3166代码或三位UN M.49区号。
由
Locale
创建的Builder
的国家/地区值始终标准化为大写。- 参数
-
region
- 该地区 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果region
-
setVariant
public Locale.Builder setVariant(String variant)
设置变体。 如果variant为null或空字符串,则删除此Builder
的变体。 否则,它必须包含一个或多个well-formed子标签,否则抛出异常。注意:此方法检查
variant
满足IETF BCP 47变体子标签的语法要求,并将值规范化为小写字母。 但是,Locale
类不对变体施加任何语法限制,并且Locale
的变体值区分大小写。 要设置此类变体,请使用Locale构造函数。- 参数
-
variant
- 变种 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果variant
-
setExtension
public Locale.Builder setExtension(char key, String value)
设置给定键的扩展名。 如果值为null或空字符串,则删除扩展名。 否则,扩展名必须为well-formed或抛出异常。注意:密钥
UNICODE_LOCALE_EXTENSION
('u')用于Unicode区域设置扩展。 为此键设置值会将任何现有的Unicode区域设置键/类型对替换为扩展中定义的值。注意:密钥
PRIVATE_USE_EXTENSION
('x')用于私人使用代码。 为了格式良好,该密钥的值只需要有一到八个字母数字字符的子标签,而不是一般情况下的两到八个子标签。- 参数
-
key
- 扩展密钥 -
value
- 扩展名值 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果key
是非法的或value
- 另请参见:
-
setUnicodeLocaleKeyword(String, String)
-
setUnicodeLocaleKeyword
public Locale.Builder setUnicodeLocaleKeyword(String key, String type)
设置给定键的Unicode语言环境关键字类型。 如果类型为null,则删除Unicode关键字。 否则,密钥必须为非null,密钥和类型都必须为well-formed或抛出异常。键和类型转换为小写。
注意 :通过
setExtension(char, java.lang.String)
设置“u”扩展名会将所有Unicode区域设置关键字替换为扩展名中定义的关键字。- 参数
-
key
- Unicode语言环境键 -
type
- Unicode语言环境类型 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果key
或type
-
NullPointerException
- 如果key
为空 - 另请参见:
-
setExtension(char, String)
-
addUnicodeLocaleAttribute
public Locale.Builder addUnicodeLocaleAttribute(String attribute)
添加unicode语言环境属性(如果尚未存在),否则无效。 该属性不能为null,且必须为well-formed或抛出异常。- 参数
-
attribute
- 该属性 - 结果
- 这个建设者。
- 异常
-
NullPointerException
- 如果attribute
为空 -
IllformedLocaleException
- 如果attribute
- 另请参见:
-
setExtension(char, String)
-
removeUnicodeLocaleAttribute
public Locale.Builder removeUnicodeLocaleAttribute(String attribute)
- 参数
-
attribute
- 属性 - 结果
- 这个建设者。
- 异常
-
NullPointerException
- 如果attribute
为空 -
IllformedLocaleException
- 如果attribute
- 另请参见:
-
setExtension(char, String)
-
clear
public Locale.Builder clear()
将构建器重置为其初始的空状态。- 结果
- 这个建设者。
-
clearExtensions
public Locale.Builder clearExtensions()
将扩展重置为其初始的空状态。 语言,脚本,区域和变体保持不变。- 结果
- 这个建设者。
- 另请参见:
-
setExtension(char, String)
-
build
public Locale build()
返回根据此构建器上设置的字段创建的Locale
的实例。这适用于构建区域设置时
Locale.forLanguageTag(java.lang.String)
中列出的转换。 (Grandfathered标签在setLanguageTag(java.lang.String)
处理。)- 结果
- 一个地区。
-
-