如何从区域设置获取国家代码?

4
我希望能从一组locale中获取国家代码,例如:我有以下输入: en_US, dua_CM, zh-Hans_MO ... 我希望输出相应的国家代码: US, CM, MO...(我不确定国家代码是不是locale的最后两个字符...)。
我尝试了以下Java代码,但它打印出了null。
    Locale lc = new Locale("en_US");
    System.out.print(lc.getCountry());

任何建议?提前感谢! 丹
1个回答

4

在这里,你正在定义自己的Locale,但你没有指定国家值(参见重载的Locale构造函数)。

相反,请使用

Locale lc = Locale.forLanguageTag("en-US"); // Java 1.7

该代码将从Java支持的语言环境中获取Locale对象。


此外,相关内容如下:

(请阅读到最后)


也许我没理解清楚,但是OP说“我想从语言环境列表中获取国家代码”。而你展示的是如何从国家代码获取语言环境,这正好相反。 - BackSlash
@BackSlash 我的理解是,如果你只有语言标签,你需要检索 Locale 来获取其国家。或者你可以建立自己的映射。 - Sotirios Delimanolis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接