树叶云鸿蒙OS教程:鸿蒙OS Locale.Builder

Locale.Builder

java.lang.Object

|—java.util.Locale.Builder

public static final class Locale.Builder
extends Object

Builder 用于根据 setter 配置的值构建 Locale 的实例。 与 Locale 构造函数不同,Builder 检查由 setter 配置的值是否满足 Locale 类定义的语法要求。 由 Builder 创建的 Locale 对象格式正确,可以转换为格式正确的 IETF BCP 47 语言标签而不会丢失信息。

注意:Locale 类不对变体提供任何语法限制,而 BCP 47 要求每个变体子标签为 5 到 8 个字母数字或单个数字后跟 3 个字母数字。 对于不满足此限制的变体,方法 setVariant 会引发 IllformedLocaleException。 如果需要支持这种变体,请使用 Locale 构造函数。 但是,请记住,以这种方式创建的 Locale 对象在转换为 BCP 47 语言标签时可能会丢失变体信息。

以下示例显示如何使用 Builder 创建 Locale 对象。

     Locale aLocale = new Builder().setLanguage("sr").setScript("Latn").setRegion("RS").build();

构建器可以重复使用; clear() 将所有字段重置为其默认值。

构造函数摘要

构造函数描述
Builder()构造一个空的 Builder。

方法总结

修饰符和类型方法描述
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)重置 Builder 以匹配提供的 IETF BCP 47 语言标签。
Locale.BuildersetLocale(Locale locale)重置 Builder 以匹配提供的语言环境。
Locale.BuildersetRegion(String region)设置区域。
Locale.BuildersetScript(String script)设置脚本。
Locale.BuildersetUnicodeLocaleKeyword(String key, String type)设置给定键的 Unicode 语言环境关键字类型。
Locale.BuildersetVariant(String variant)设置变体。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

构造函数详细信息

Builder

public Builder()

构造一个空的 Builder。 所有字段、扩展和私人使用信息的默认值为空字符串。

方法详情

setLocale

public Locale.Builder setLocale(Locale locale)

重置 Builder 以匹配提供的语言环境。 现有状态被丢弃。

语言环境的所有字段必须格式正确。

具有任何格式错误的字段的语言环境会导致抛出 IllformedLocaleException,但出于兼容性原因接受以下三种情况除外:

  • Locale(“ja”, “JP”, “JP”) 被视为 “ja-JP-u-ca-japanese”
  • Locale(“th”, “TH”, “TH”) 被视为 “th-TH-u-nu-thai”
  • Locale(“no”, “NO”, “NY”) 被视为 “nn-NO”

参数:

参数名称参数描述
locale语言环境

返回:

这个建设者。

Throws:

Throw名称Throw描述
IllformedLocaleException如果 locale 有任何格式错误的字段。
NullPointerException如果 locale 为空

setLanguageTag

public Locale.Builder setLanguageTag(String languageTag)

重置 Builder 以匹配提供的 IETF BCP 47 语言标签。 丢弃现有状态。 Null 和空字符串会导致构建器被重置,如 clear()。 祖代标签(请参阅 Locale#forLanguageTag)在处理之前转换为它们的规范形式。 否则,语言标记必须是格式正确的,否则会引发异常(与 Locale.forLanguageTag 不同,它只会丢弃格式错误的标记和后续部分)。

参数:

参数名称参数描述
languageTag语言标签

返回:

这个建设者。

Throws:

Throw名称Throw描述
IllformedLocaleException如果 languageTag 格式不正确

setLanguage

public Locale.Builder setLanguage(String language)

设置语言。 如果 language 为空字符串或 null,则删除此 Builder 中的语言。 否则,语言必须格式正确,否则会引发异常。

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

参数:

参数名称参数描述
language语言

返回:

这个建设者。

Throws:

Throw名称Throw描述
IllformedLocaleException如果 language 格式不正确

setScript

public Locale.Builder setScript(String script)

设置脚本。 如果 script 为 null 或空字符串,则删除此 Builder 中的脚本。 否则,脚本必须格式正确,否则会引发异常。

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

参数:

参数名称参数描述
script脚本

返回:

这个建设者。

Throws:

Throw名称Throw描述
IllformedLocaleException如果 script 格式不正确

setRegion

public Locale.Builder setRegion(String region)

设置区域。 如果 region 为 null 或空字符串,则删除此 Builder 中的区域。 否则,该区域必须是格式良好的,否则将引发异常。

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

由 Builder 创建的 Locale 中的 country 值始终标准化为大写。

参数:

参数名称参数描述
region该区域

返回:

这个建设者。

Throws:

Throw名称Throw描述
IllformedLocaleException如果 region 格式不正确

setVariant

public Locale.Builder setVariant(String variant)

设置变体。 如果 variant 为 null 或空字符串,则删除此 Builder 中的变体。 否则,它必须由一个或多个格式正确的子标签组成,否则将引发异常。

注意:此方法检查变体是否满足 IETF BCP 47 变体子标签的语法要求,并将值规范化为小写字母。 但是,Locale 类对变体没有任何语法限制,并且 Locale 中的变体值区分大小写。 要设置这样的变体,请使用 Locale 构造函数。

参数:

参数名称参数描述
variant变体

返回:

这个建设者。

Throws:

Throw名称Throw描述
IllformedLocaleException如果 variant 格式不正确

setExtension

public Locale.Builder setExtension(char key, String value)

设置给定键的扩展名。 如果值为 null 或空字符串,则删除扩展名。 否则,扩展必须是格式正确的,否则会引发异常。

注意:键 Locale#UNICODE_LOCALE_EXTENSION (‘u’) 用于 Unicode 语言环境扩展。 设置此键的值会将任何现有的 Unicode 语言环境键/类型对替换为扩展中定义的那些。

注意:键 Locale#PRIVATE_USE_EXTENSION (‘x’) 用于私人使用代码。 为了形成良好的格式,此键的值只需具有 1 到 8 个字母数字字符的子标签,而不是一般情况下的 2 到 8 个。

参数:

参数名称参数描述
key扩展密钥
value扩展值

返回:

这个建设者。

Throws:

Throw名称Throw描述
IllformedLocaleException如果 key 或 value 格式不正确

setUnicodeLocaleKeyword

public Locale.Builder setUnicodeLocaleKeyword(String key, String type)

设置给定键的 Unicode 语言环境关键字类型。 如果类型为 null,则删除 Unicode 关键字。 否则,键必须为非空,并且键和类型都必须格式正确,否则将引发异常。

键和类型转换为小写。

注意:通过 setExtension(char, java.lang.String) 设置 ‘u’ 扩展名会将所有 Unicode 语言环境关键字替换为扩展名中定义的关键字。

参数:

参数名称参数描述
keyUnicode 语言环境键
typeUnicode 语言环境类型

返回:

这个建设者。

Throws:

Throw名称Throw描述
IllformedLocaleException如果 key 或 type 格式不正确
NullPointerException如果 key 为空

addUnicodeLocaleAttribute

public Locale.Builder addUnicodeLocaleAttribute(String attribute)

添加 unicode 语言环境属性,如果不存在,否则无效。 该属性不能为空,并且必须格式正确,否则将引发异常。

参数:

参数名称参数描述
attribute属性

返回:

这个建设者。

Throws:

Throw名称Throw描述
NullPointerException如果 attribute 为空
IllformedLocaleException如果 attribute 格式不正确

removeUnicodeLocaleAttribute

public Locale.Builder removeUnicodeLocaleAttribute(String attribute)

删除 unicode 语言环境属性(如果存在),否则无效。 该属性不能为空,并且必须格式正确,否则将引发异常。

删除的属性比较不区分大小写。

参数:

参数名称参数描述
attribute属性

返回:

这个建设者。

Throws:

Throw名称Throw描述
NullPointerException如果 attribute 为空
IllformedLocaleException如果 attribute 格式不正确

clear

public Locale.Builder clear()

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

返回:

这个建设者。

clearExtensions

public Locale.Builder clearExtensions()

将扩展重置为其初始的空状态。 语言、文字、地区和变体不变。

返回:

这个建设者。

build

public Locale build()

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

这将在构造语言环境时应用 Locale#forLanguageTag 中列出的转换。 (祖父标签在 setLanguageTag(java.lang.String) 中处理。)

返回:

语言环境。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/157955.html<

(0)
运维的头像运维
上一篇2025-03-16 15:01
下一篇 2025-03-16 15:02

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注