Most visited

Recently visited

Added in API level 21

Locale.Builder

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()所有字段重置为默认值。

也可以看看:

Summary

Public constructors

Locale.Builder()

构造一个空的生成器。

Public methods

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)

设置变体。

Inherited methods

From class java.lang.Object

Public constructors

Locale.Builder

Added in API level 21
Locale.Builder ()

构造一个空的生成器。 所有字段,扩展名和专用信息的默认值是空字符串。

Public methods

addUnicodeLocaleAttribute

Added in API level 21
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

也可以看看:

build

Added in API level 21
Locale build ()

返回从此构建器上设置的字段创建的 Locale实例。

这适用于构建语言环境时在forLanguageTag(String)列出的转换。 (Grandfathered标签在setLanguageTag(String)中处理。)

Returns
Locale A Locale.

clear

Added in API level 21
Locale.Builder clear ()

将构建器重置为其初始空状态。

Returns
Locale.Builder This builder.

clearExtensions

Added in API level 21
Locale.Builder clearExtensions ()

将扩展名重置为其初始空状态。 语言,脚本,区域和变体不变。

Returns
Locale.Builder This builder.

也可以看看:

removeUnicodeLocaleAttribute

Added in API level 21
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

也可以看看:

setExtension

Added in API level 21
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

也可以看看:

setLanguage

Added in API level 21
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

setLanguageTag

Added in API level 21
Locale.Builder setLanguageTag (String languageTag)

重置Builder以匹配提供的IETF BCP 47语言标签。 丢弃现有的状态。 空和空字符串导致构建器被重置,如clear() 在处理之前,Grandfathered标记(请参阅forLanguageTag(String) )已转换为其规范形式。 否则,语言标记必须是格式良好的(请参阅Locale )或抛出异常(不像Locale.forLanguageTagLocale.forLanguageTag丢弃Locale.forLanguageTag不正确和随后的标记部分)。

Parameters
languageTag String: the language tag
Returns
Locale.Builder This builder.
Throws
IllformedLocaleException if languageTag is ill-formed

也可以看看:

setLocale

Added in API level 21
Locale.Builder setLocale (Locale locale)

重置Builder以匹配提供的locale 现有状态被丢弃。

地区的所有字段必须格式良好,请参阅 Locale

带有任何不合格字段的语言环境会导致引发 IllformedLocaleException ,除了以下三种由于兼容性原因而被接受的情况:

  • Locale("ja", "JP", "JP") is treated as "ja-JP-u-ca-japanese"
  • Locale("th", "TH", "TH") is treated as "th-TH-u-nu-thai"
  • Locale("no", "NO", "NY") is treated as "nn-NO"

Parameters
locale Locale: the locale
Returns
Locale.Builder This builder.
Throws
IllformedLocaleException if locale has any ill-formed fields.
NullPointerException if locale is null.

setRegion

Added in API level 21
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

setScript

Added in API level 21
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

setUnicodeLocaleKeyword

Added in API level 21
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

也可以看看:

setVariant

Added in API level 21
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

Hooray!