Module  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​()
        构造一个空的构建器。 所有字段,扩展名和私人使用信息的默认值为空字符串。
    • 方法详细信息

      • setLocale

        public Locale.Builder setLocale​(Locale locale)
        复位Builder以匹配提供的locale 现有状态被丢弃。

        地区的所有领域必须格局良好,请参阅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 - 如果 languageTaglanguageTag
        另请参见:
        Locale.forLanguageTag(String)
      • setLanguage

        public Locale.Builder setLanguage​(String language)
        设置语言。 如果language是空字符串或null,则此Builder的语言Builder被删除。 否则,该语言必须是well-formed或抛出异常。

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

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

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

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

        参数
        script - 脚本
        结果
        这个建设者。
        异常
        IllformedLocaleException - 如果 scriptscript
      • setRegion

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

        典型的区域值是双字母ISO 3166代码或三位数UN M.49区号。

        Locale创建的Builder的国家值总是归一化为大写。

        参数
        region - 该地区
        结果
        这个建设者。
        异常
        IllformedLocaleException - 如果 regionregion
      • setVariant

        public Locale.Builder setVariant​(String variant)
        设置变体。 如果变量为空或空字符串,则此Builder的变体Builder被删除。 否则,它必须由一个或多个well-formed子标记组成,否则抛出异常。

        注意:此方法检查variant满足IETF BCP 47变体子标记的语法要求,并将该值标准化为小写字母。 然而, Locale类不对变体施加任何句法限制,而Locale的变体值区分大小写。 要设置此类变体,请使用Locale构造函数。

        参数
        variant - 变体
        结果
        这个建设者。
        异常
        IllformedLocaleException - 如果 variantvariant
      • 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)
      • clear

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

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