Java getISOCountries()方法只显示两个控件名称字母。是否可以使用此方法获取国家的全名?
我使用了以下代码,但它只显示ISO国家名称的2位数字。例如,对于“INDIA”,它只显示“IN”。我可以显示全名为“印度”吗Java getISOCountries()方法只显示两个控件名称字母。是否可以使用此方法获取国家的全名?,java,locale,Java,Locale,我使用了以下代码,但它只显示ISO国家名称的2位数字。例如,对于“INDIA”,它只显示“IN”。我可以显示全名为“印度”吗 String[]loc=Locale.getISOCountries(); 对于(inta=0;a尝试使用方法 例如: import java.util.Locale; public class Main { public static void main(String [] argv) { Locale defaultLocale = Locale.g
String[]loc=Locale.getISOCountries();
对于(inta=0;a尝试使用方法
例如:
import java.util.Locale;
public class Main {
public static void main(String [] argv) {
Locale defaultLocale = Locale.getDefault();
System.out.println(defaultLocale.getDisplayCountry()); // displays United States
}
}
编辑:
要获得完整的国家全名列表,我不知道有什么方法。相反,您可以下载包含国家全名到两个字母到两个字母ISO 3166名称映射的文件,使用您以前的getISOCountries
方法获得两个字母的名称并使用映射。这里我们只能获得L的完整名称可在getAvailableScale()
方法中使用的ocale
import java.util.*;
public class Locales
{
public static void main(String[] args)
{
Locale[] locales = Locale.getAvailableLocales();
for(int i = 0; i < locales.length; i++)
{
String locale_name = locales[i].getDisplayName();
System.out.println((i+1)+":"+locale_name);
}
}
}
import java.util.*;
公共类区域设置
{
公共静态void main(字符串[]args)
{
Locale[]locales=Locale.getAvailableLocales();
for(int i=0;i
无需下载任何文件。
您可以使用给定的2个国家/地区字母再次创建区域设置对象,因此可以执行以下操作:
String[] locales = Locale.getISOCountries();
for (String countryCode : locales) {
Locale obj = new Locale("", countryCode);
System.out.println("Country Code = " + obj.getCountry()
+ ", Country Name = " + obj.getDisplayCountry());
}
是的,谢谢你的回答。我试过并得到了DisplayCountry()方法的效果非常好。但我只能在ISO国家中找到一个国家,而这些国家已经有了。如何获得所有国家的名称?我认为这段代码非常有用,可以让开发人员了解当地的情况,所以我稍微调整了代码,并通过ideone.com运行了它。下面是语言/国家的分类地图配对(如果ideone链接失效,我还创建了一个。)
String[] locales = Locale.getISOCountries();
for (String countryCode : locales) {
Locale obj = new Locale("", countryCode);
System.out.println("Country Code = " + obj.getCountry()
+ ", Country Name = " + obj.getDisplayCountry());
}