问题:如何正确使用java.util.locale检查用户的语言环境?
简介:我使用遗留代码在Locale中使用预定义的静态来检查用户是否在例如法国......
if(Locale.FRANCE.equals(locale) || Locale.FRENCH.equals(locale)) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
我想添加一些代码来检查用户是否在澳大利亚.但是,Locale只有一组有限的预定义静态,而AUSTRALIA不是其中之一.我似乎能够做到以下......
if(new Locale("AU").equals(locale)) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
但是,这与现有代码不一致.这样做的正确方法是什么?如果我给出的第一个例子是正确的,为什么预定义的静态列表如此有限?
号new Locale( "AU" )将是语言"AU"(无论是).你需要两个参数构造函数!
这些Locale.equals()方法比较两者language,country和variant.您可能应该像这样检查:
if ( "AU".equals( locale.getCountry() ) ) { /* do stuff */ }
Run Code Online (Sandbox Code Playgroud)
至于为什么预定义的列表Locale如此有限:通过.我们应该感到荣幸的是,除了一切之外什么en_US都没有:-)
干杯,
| 归档时间: |
|
| 查看次数: |
3578 次 |
| 最近记录: |