模块  java.base
软件包  java.util

Class 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

        public Builder()
        构造一个空的Builder。 所有字段,扩展名和私有用户信息的默认值为空字符串。
    • 方法详细信息

      • 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是空字符串或null,则删除此Builder的语言。 否则,语言必须为well-formed或抛出异常。

        典型的语言值是ISO639中定义的两个或三个字母的语言代码。

        参数
        language - 该语言
        结果
        这个建设者。
        异常
        IllformedLocaleException - 如果 language
      • setScript

        public Locale.Builder setScript​(String script)
        设置脚本。 如果script为空或空字符串,则删除此Builder的脚本。 否则,脚本必须是well-formed或抛出异常。

        典型的脚本值是ISO 15924定义的四字母脚本代码。

        参数
        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)
      • clear

        public Locale.Builder clear()
        将构建器重置为其初始的空状态。
        结果
        这个建设者。
      • clearExtensions

        public Locale.Builder clearExtensions()
        将扩展重置为其初始的空状态。 语言,脚本,区域和变体保持不变。
        结果
        这个建设者。
        另请参见:
        setExtension(char, String)