Android新Locale(“en_US”)和Locale.US有什么不同?

时间:2013-12-05 09:51:09

标签: android

我在针对常量值测试首选项中设置的语言环境时遇到了这个问题:

(new Locale("en_US")).equals(Locale.US) == false

当查看详细信息时,结果发现新的Locale("en_us")返回一个语言代码为“en_us”的对象,一个国家代码为零长度字符串,而Locale.US返回一个带有语言代码的对象“en”和国家/地区代码“US”。 Locale("en","US")返回与Locale.US相同的结果,因此很容易避免此问题,但这是Locale构造函数的预期行为吗?

1 个答案:

答案 0 :(得分:1)

语言环境构造函数正在按预期工作。您可以像这样比较语言环境对象:

  

(new Locale(“en_US”))。toString()。equalsIgnoreCase((Locale.US).toString())

它会给你预期值