Java 如何将国家名称转换为货币代码?

Java 如何将国家名称转换为货币代码?,java,android,Java,Android,假设我的国家名是USA,所以我想转换成USD,我只有来自webservice的国家名 我已经尝试过这段代码,但不知道如何将国家名称转换为区域设置对象。在这个问题上有人能提出建议吗 String countryName=jsonObject.getString("country"); 提供国家代码而不是国家名称 public static void main(String[] args) throws InterruptedException { Map<String, String>

假设我的国家名是USA,所以我想转换成USD,我只有来自webservice的国家名

我已经尝试过这段代码,但不知道如何将国家名称转换为区域设置对象。在这个问题上有人能提出建议吗

String countryName=jsonObject.getString("country");

提供国家代码而不是国家名称

public static void main(String[] args) throws InterruptedException {
Map<String, String> countries = new HashMap<>();
for (String iso : Locale.getISOCountries()) {
    Locale l = new Locale("", iso);
    countries.put(l.getDisplayCountry(), iso);
}

System.out.println(countries.get("Switzerland"));
System.out.println(countries.get("Andorra"));
System.out.println(countries.get("Japan"));
 }
publicstaticvoidmain(String[]args)抛出InterruptedException{
Map countries=新HashMap();
for(字符串iso:Locale.getISOCountries()){
语言环境l=新语言环境(“,iso”);
countries.put(l.getDisplayCountry(),iso);
}
System.out.println(countries.get(“瑞士”);
System.out.println(countries.get(“安道尔”);
System.out.println(countries.get(“日本”);
}
您也可以使用专门为此设计的库

从它的GitHub页面

支持国际化的包,包含ISO 3166-1国家/地区 代码枚举、ISO 639-1语言代码枚举等

这个问题的具体例子

String countryName = jsonObject.getString("country");
List<CurrencyCode> codes = CurrencyCode.getByCountry(countryName, false)

Locale将语言代码作为构造函数的参数,而不是国家名称:只是指出代码中的问题-既然有明确的文档证明它不会工作,为什么您希望它工作?好的,现在告诉我如何解决我找到了类似问题的答案。看看这个。这是一个有用的答案
// List all the currency codes.
for (CurrencyCode code : CurrencyCode.values())
{
    System.out.format("[%s] %03d %s\n", code, code.getNumeric(), code.getName());
}

// List all the country codes.
for (CountryCode code : CountryCode.values())
{
    System.out.format("[%s] %s\n", code, code.getName());
}