- 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.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)重置生成器以匹配提供的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。 现有状态被丢弃。任何形式不
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)。 )- 结果
- 一个地方。
-
-