Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中获取基于国家代码的语言代码_Java_Android_Locale - Fatal编程技术网

如何在java中获取基于国家代码的语言代码

如何在java中获取基于国家代码的语言代码,java,android,locale,Java,Android,Locale,如何在java中获取基于国家代码的语言代码 你好 我遇到过这样的情况,我需要根据国家代码找到语言。 对于国家名称“瑞士”,我的国家代码为“CH”

如何在java中获取基于国家代码的语言代码
你好
我遇到过这样的情况,我需要根据国家代码找到语言。
对于国家名称“瑞士”,我的国家代码为“CH”<但是在瑞士可以有3种语言,如德语、法语和英国英语。我需要根据国家代码查找语言代码。
情景:我的国家代码是“CH”。我需要得到基于这个国家代码的语言代码


提前感谢

您可以使用以下构造函数-

对于美国(代码:US),语言为英语(代码“en”)。所以你可以这样做-

Locale locale = new Locale("en", "US");

该程序打印瑞士所有可用地区的语言代码。它可以很容易地修改,例如返回语言代码的
列表。选择你想要的语言是留给读者的一个练习——瑞士人没有选择为他们的国家选择一种自己喜欢的语言

import java.util.Locale;

public class Test {
  public static void main(String[] args) {
    Locale[] all = Locale.getAvailableLocales();
    for (Locale locale : all) {
      String country = locale.getCountry();
      if(country.equalsIgnoreCase("CH")){
        System.out.println(locale.getLanguage());
      }
    }
  }
}
输出:

fr
de
it

可以有3种语言,如德语、法语和
。。。意大利语(瑞士意大利语),不是英国英语!嗯,它们都是德语、法语和意大利语在瑞士的变体。那么你希望瑞士的三种语言中有哪一种?如果不是全部三个,你想要什么还不清楚。瑞士没有“the”语言代码。如何用java获取瑞士国家代码的德语代码?如果你已经知道你想要德语,而不是其他任何一种同样官方的语言,为什么不直接使用“de”?或者使用
新建区域设置(“ch”、“de”)
为瑞士和德国的组合创建区域设置对象。iam也在寻找答案。你有什么解决办法吗?我可以用下面的方法:Locale=newlocale(“CH”);String language=locale.getDisplayLanguage()。这是正确的吗?这个答案与问题无关@Android程序员办公室:不,这是不对的。事实上,您不能直接从国家代码中取消对语言的引用。更多信息请参见Patricia的答案。顺便说一句:如果您需要特定地区语言的国家名称:
fr
de
it