- 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)
-
-
构造方法摘要
构造方法 Constructor 描述 Builder()
构造一个空的构建器。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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)
设置变体。
-
-
-
方法详细信息
-
setLocale
public Locale.Builder setLocale(Locale locale)
复位Builder
以匹配提供的locale
。 现有状态被丢弃。任何形式不
IllformedLocaleException
地区都会导致IllformedLocaleException
被抛出,除了以下三种被兼容性原因接受的情况外:- 地区(“ja”,“JP”,“JP”)被视为“ja-JP-u-ca-japanese”
- 区域(“th”,“TH”,“TH”)被视为“th-TH-uu-nu-thai”
- 区域设置(“否”,“否”,“纽约”)被视为“nn-NO”
- 参数
-
locale
- 地区 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果locale
有任何不合格的字段。 -
NullPointerException
- 如果locale
为空。
-
setLanguageTag
public Locale.Builder setLanguageTag(String languageTag)
重置生成器以匹配提供的IETF BCP 47语言标记。 丢弃现有状态。 空和空字符串会导致构建器复位,如clear()
。 Grandfathered标签(参见Locale.forLanguageTag(java.lang.String)
)在处理之前被转换为其规范形式。 否则,语言标签必须格式正确(请参阅Locale
)或抛出异常(不像Locale.forLanguageTag
,它仅丢弃标签的不完整和后续部分)。- 参数
-
languageTag
- 语言标签 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果languageTag
是languageTag
- 另请参见:
-
Locale.forLanguageTag(String)
-
setLanguage
public Locale.Builder setLanguage(String language)
设置语言。 如果language
是空字符串或null,则此Builder
的语言Builder
被删除。 否则,该语言必须是well-formed或抛出异常。典型的语言值是ISO639中定义的两个或三个字母的语言代码。
- 参数
-
language
- 语言 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果language
是language
-
setScript
public Locale.Builder setScript(String script)
设置脚本。 如果script
为空或空字符串,则此Builder
的脚本Builder
被删除。 否则,脚本必须是well-formed或抛出异常。典型的脚本值是由ISO 15924定义的四字母脚本代码。
- 参数
-
script
- 脚本 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果script
是script
-
setRegion
public Locale.Builder setRegion(String region)
设置区域。 如果区域为空或空字符串,则删除此Builder
的区域。 否则,该区域必须是well-formed或抛出异常。典型的区域值是双字母ISO 3166代码或三位数UN M.49区号。
由
Locale
创建的Builder
的国家值总是归一化为大写。- 参数
-
region
- 该地区 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果region
是region
-
setVariant
public Locale.Builder setVariant(String variant)
设置变体。 如果变量为空或空字符串,则此Builder
的变体Builder
被删除。 否则,它必须由一个或多个well-formed子标记组成,否则抛出异常。注意:此方法检查
variant
满足IETF BCP 47变体子标记的语法要求,并将该值标准化为小写字母。 然而,Locale
类不对变体施加任何句法限制,而Locale
的变体值区分大小写。 要设置此类变体,请使用Locale构造函数。- 参数
-
variant
- 变体 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果variant
是variant
-
setExtension
public Locale.Builder setExtension(char key, String value)
设置给定键的扩展名。 如果值为空或空字符串,则扩展名将被删除。 否则,扩展名必须为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区域设置关键字类型。 如果类型为空,则会删除Unicode关键字。 否则,密钥必须为非空,并且密钥和类型必须为well-formed或抛出异常。键和类型转换为小写。
注意 :通过
setExtension(char, java.lang.String)
设置'u'扩展名将使用扩展名中定义的所有Unicode区域设置关键字替换。- 参数
-
key
- Unicode区域设置键 -
type
- Unicode区域设置类型 - 结果
- 这个建设者。
- 异常
-
IllformedLocaleException
- 如果key
或type
是type
-
NullPointerException
- 如果key
为空 - 另请参见:
-
setExtension(char, String)
-
addUnicodeLocaleAttribute
public Locale.Builder addUnicodeLocaleAttribute(String attribute)
添加unicode区域设置属性(如果尚未存在),否则不起作用。 该属性不能为空,必须为well-formed或抛出异常。- 参数
-
attribute
- 属性 - 结果
- 这个建设者。
- 异常
-
NullPointerException
- 如果attribute
为空 -
IllformedLocaleException
- 如果attribute
是attribute
- 另请参见:
-
setExtension(char, String)
-
removeUnicodeLocaleAttribute
public Locale.Builder removeUnicodeLocaleAttribute(String attribute)
- 参数
-
attribute
- 属性 - 结果
- 这个建设者。
- 异常
-
NullPointerException
- 如果attribute
为空 -
IllformedLocaleException
- 如果attribute
是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)
。 )- 结果
- 一个地方。
-
-