问题:如何正确使用 java.util.locale 来检查用户的语言环境?
总结:我的遗留代码使用区域设置中的预定义静态来检查用户是否在法国......
if(Locale.FRANCE.equals(locale) || Locale.FRENCH.equals(locale)) {
// do stuff
}
我想添加一些代码来检查用户是否在澳大利亚。然而,Locale 只有一组有限的预定义静态信息,而 AUSTRALIA 不是其中之一。我似乎能够执行以下操作......
if(new Locale("AU").equals(locale)) {
// do stuff
}
但是,这与现有代码不一致。正确的做法是什么?如果我给出的第一个例子是正确的,为什么预定义的静态列表如此有限?
最佳答案
没有。 new Locale( "AU")
将是语言“AU”(无论是什么)。你需要两个参数的构造函数!
Locale.equals()
方法比较language
、country
和variant
。您可能应该这样检查:
if ( "AU".equals( locale.getCountry() ) ) { /* do stuff */ }
至于为什么预定义的 Locale
列表如此有限:通过。除了 en_US
之外,我们可能应该感到荣幸:-)
干杯,
关于java - 如何正确使用 java.util.Locale 检查澳大利亚语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13289024/