识别可用的语言环境
您可以使用有效的语言和国家/地区代码的任意组合创建一个Locale
,但这并不意味着您可以使用它。请记住,一个Locale
对象只是一个标识符。您将Locale
对象传递给其他对象,然后其他对象将完成实际工作。这些其他对象(我们称为对语言环境敏感的对象)不知道如何处理所有可能的Locale
定义。
若要找出对语言环境敏感的类可以识别的Locale
定义类型,请调用getAvailableLocales
方法。例如,要找出DateFormat
类支持哪些Locale
定义,您可以编写如下例程:
import java.util.*;
import java.text.*;
public class Available {
static public void main(String[] args) {
Locale list[] = DateFormat.getAvailableLocales();
for (Locale aLocale : list) {
System.out.println(aLocale.toString());
}
}
}
请注意,由toString
返回的String
包含语言和国家/地区代码,并用下划线分隔:
ar_EG
be_BY
bg_BG
ca_ES
cs_CZ
da_DK
de_DE
...
如果要向final用户显示Locale
名称的列表,则应向他们显示比toString
返回的语言和国家/地区代码更容易理解的内容。相反,您可以调用Locale.getDisplayName
方法,该方法检索Locale
对象的本地化String
。例如,在前面的代码中用getDisplayName
替换toString
时,程序将打印以下行:
Arabic (Egypt)
Belarussian (Belarus)
Bulgarian (Bulgaria)
Catalan (Spain)
Czech (Czech Republic)
Danish (Denmark)
German (Germany)
...
您可能会看到不同的语言环境列表,具体取决于 Java 平台的实现。