如何正确使用java.util.Locale检查澳大利亚语言环境

时间:2012-11-08 12:20:35

标签: java locale

问题:如何正确使用java.util.locale检查用户的区域设置?

摘要:我使用的遗留代码在Locale中使用预定义的静态来检查用户是否在例如法国......

if(Locale.FRANCE.equals(locale) || Locale.FRENCH.equals(locale)) {
    // do stuff
}

我希望添加一些代码来检查用户是否在澳大利亚。但是,Locale只有一组有限的预定义静态,而AUSTRALIA不是其中之一。我似乎能够做到以下几点......

if(new Locale("AU").equals(locale)) {
    // do stuff
}

但是,这与现有代码不一致。这样做的正确方法是什么?如果我给出的第一个例子是正确的,为什么预定义的静态列表如此有限?

1 个答案:

答案 0 :(得分:5)

没有。 new Locale( "AU" )将是“AU”语言(无论是什么)。你需要两个参数构造函数!

Locale.equals()方法会比较languagecountryvariant。您应该像这样检查:

if ( "AU".equals( locale.getCountry() ) ) { /* do stuff */ }

至于为什么预定义的Locale列表如此有限:通过。我们应该感到荣幸的是除了en_US之外还有其他东西: - )

干杯,