当java中的语言标签是zh-CN时如何获得中文(简体)?

时间:2017-01-13 10:00:49

标签: java .net

如果我的语言标签是zh-CN,我需要打印中文(简体)作为语言的显示名称。这是为了避免重复的语言,我想将下面的语言组合在一起。

  1. zh-CN Chinese(中华人民共和国)
  2. zh-SG Chinese(Singapore)
  3. 使用小型黑客

    在.NET中可以实现同样的目的
    if(cultureInfo.TwoLetterISOLanguageName == "zh") {
        list.Add(cultureInfo.Parent.Name, cultureInfo.Parent.DisplayName);
    }
    

    我怎样才能在Java中做同样的事情?

2 个答案:

答案 0 :(得分:0)

你能试试吗?

Locale currentLocale = Locale.getDefault();
ArrayList<String> language = new ArrayList<String>();

if(currentLocale.getCountry()=="zh"){
 Locale.setDefault(new Locale("zh", "CHS"));
 Locale newLocale = Locale.getDefault();
 String name = newLocale.getDisplayLanguage();
 language.add(name);
}

<强>更新 看一下这篇文章。

https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.displayname(v=vs.110).aspx

答案 1 :(得分:0)

使用Locale在java中指定语言和地理区域。使用Java 8中的以下代码段,发现带有zh的所有语言环境的显示语言名称都是中文。

Locale[] locales = Locale.getAvailableLocales();
Map<Locale, String> result = Arrays.stream(locales)
                                   .filter(locale -> locale.toString().startsWith("zh"))
                                  .collect(Collectors.toMap(locale -> locale, locale -> "Chinese (Simplified)"));
System.out.println(result);

JDK 8u121上的输出: {zh_CN =中文(简体),zh =中文(简体),zh_HK =中文(简体),zh_TW =中文(简体),zh_SG =中文(简体)}