为什么要将1作为java.util.Locale参数传递,例如传递给toUpperString

为什么要将1作为java.util.Locale参数传递,例如传递给toUpperString,java,Java,我见过这样做的示例代码: getString(R.string.title_section1).toUpperCase(l) 1在那里做什么?它不是1它的l(小写l)和l代表java.util.Locale 为什么将区域设置传递给toUpperCase() 可能thread解释得很好这个参数不应该是整数1,在我看来像l,它实际上是一个区域设置,使用规则将此字符串转换为大写。它不是整数,大写方法只有两种变体: 字符串toUpperCase() 使用默认区域设置的规则将此字符串中的所有字符转换为大

我见过这样做的示例代码:

getString(R.string.title_section1).toUpperCase(l)

1在那里做什么?

它不是
1
它的
l
(小写
l
)和
l
代表
java.util.Locale

为什么将区域设置传递给toUpperCase()


可能thread解释得很好

这个参数不应该是整数1,在我看来像l,它实际上是一个区域设置,使用规则将此字符串转换为大写。

它不是整数,大写方法只有两种变体:

字符串toUpperCase() 使用默认区域设置的规则将此字符串中的所有字符转换为大写

字符串大小写(区域设置) 使用给定区域设置的规则将此字符串中的所有字符转换为大写

区域设置对象在逻辑上由下面描述的字段组成

语言 ISO 639 alpha-2或alpha-3语言代码或注册语言子标签最多包含8个字母(用于将来的增强)。当一种语言同时具有alpha-2代码和alpha-3代码时,必须使用alpha-2代码。您可以在IANA语言子标签注册表中找到有效语言代码的完整列表(搜索“类型:语言”)。language字段不区分大小写,但Locale始终规范化为小写

格式良好的语言值的形式为[a-zA-Z]{2,8}。请注意,这不是完整的BCP47语言产品,因为它不包括extlang。因为现代的三字母语言代码取代了它们,所以不需要它们

例如:“en”(英语)、“ja”(日语)、“kok”(Konkani)

脚本 ISO 15924 alpha-4脚本代码。您可以在IANA语言子标记注册表中找到有效脚本代码的完整列表(搜索“类型:脚本”)。脚本字段不区分大小写,但区域设置始终规范化为标题大小写(第一个字母为大写,其余字母为小写)

格式良好的脚本值的形式为[a-zA-Z]{4}

例如:“拉丁语”、“西里尔语”

国家(地区) ISO 3166字母-2国家代码或UN M.49数字-3区号。您可以在IANA语言子标签注册表中找到有效国家和地区代码的完整列表(搜索“类型:地区”)。国家(地区)字段不区分大小写,但区域设置始终规范化为大写

格式正确的国家/地区值的形式为[a-zA-Z]{2}|[0-9]{3}

例如:“美国”、“法国”、“029”(加勒比海)

变体 用于指示区域设置变化的任意值。如果存在两个或多个变量值,每个变量值都表示其自身的语义,则这些值应按重要性排序,最重要的值应首先用下划线(“”)分隔。变量字段区分大小写

注:IETF BCP 47对变体子标签进行了语法限制。此外,BCP 47子标签严格用于表示定义语言或其方言的其他变体,这些变体不包括在语言、脚本和区域子标签的任何组合中。您可以在IANA语言子标签注册表中找到有效变体代码的完整列表(搜索“类型:变体”)。 然而,在历史上,Locale中的variant字段用于任何类型的变体,而不仅仅是语言变体。例如,Java SE运行时环境中提供的一些受支持的变体表示替代的文化行为,如日历类型或数字脚本。在BCP 47中,这种不识别语言的信息由扩展子标签或专用子标签支持

格式良好的变量值的形式为SUBTAG((“|’-”)SUBTAG)*,其中SUBTAG=[0-9][0-9a-zA-Z]{3}|[0-9a-zA-Z]{5,8}。(注意:BCP 47仅使用连字符(“-”)作为分隔符,这更为宽松)

示例:“polyton”(多声调希腊语),“POSIX”

扩展 从单字符键到字符串值的映射,表示除语言标识之外的扩展。Locale中的扩展实现BCP 47扩展子标签和专用子标签的语义和语法。扩展不区分大小写,但语言环境将所有扩展键和值规范化为小写。请注意,扩展不能有空值

格式良好的键是集合[0-9a-zA-Z]中的单个字符。格式良好的值的形式为SUBTAG('-'SUBTAG)*,其中对于键“x”SUBTAG=[0-9a-zA-Z]{1,8},对于其他键SUBTAG=[0-9a-zA-Z]{2,8}(即,“x”允许单字符子tag)

示例:key=“u”/value=“ca日语”(日语日历),key=“x”/value=“java-1-7”
注意:尽管BCP 47要求在IANA语言子标记注册表中注册字段值,但Locale类不提供任何验证功能。生成器只检查单个字段是否满足语法要求(格式正确),但不验证值本身。有关详细信息,请参见Locale.Builder。

它不是
1
而是
l
(el)lulz,一个多么棒的对象名称--