- 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.BuilderaddUnicodeLocaleAttribute(String attribute)添加unicode语言环境属性(如果尚未存在),否则无效。Localebuild()返回根据此构建器上设置的字段创建的Locale的实例。Locale.Builderclear()将构建器重置为其初始的空状态。Locale.BuilderclearExtensions()将扩展重置为其初始的空状态。Locale.BuilderremoveUnicodeLocaleAttribute(String attribute)删除unicode语言环境属性(如果存在),否则无效。Locale.BuildersetExtension(char key, String value)设置给定键的扩展名。Locale.BuildersetLanguage(String language)设置语言。Locale.BuildersetLanguageTag(String languageTag)重置Builder以匹配提供的IETF BCP 47语言标记。Locale.BuildersetLocale(Locale locale)重置Builder以匹配提供的locale。Locale.BuildersetRegion(String region)设置区域。Locale.BuildersetScript(String script)设置脚本。Locale.BuildersetUnicodeLocaleKeyword(String key, String type)设置给定键的Unicode语言环境关键字类型。Locale.BuildersetVariant(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)处理。)- 结果
- 一个地区。
-
-