2016-11-11 6 views
-4

私はアメリカの国名を持っていると仮定します。私はUSDに変換したいです。私はwebserviceからの国名のみを持っています。国名を通貨コードに変換するには?

私はこのコードを試しましたが、国名をLocaleオブジェクトに変換する方法はありません。誰でもこの問題を提案できますか?

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

ロケールは、国名ではなく、言語コードをコンストラクタのパラメータとして使用します。https://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#Locale(java)。 lang.String) – 1615903

+0

あなたのコードの問題点を指摘してください - それは明らかに文書化されているので、なぜそれはうまくいくと思いますか? – 1615903

+0

okは解決する方法を教えてください –

答えて

1

を提供また、これはこの目的のために特別に設計されてhttps://github.com/TakahikoKawasaki/nv-i18nライブラリを使用することができます。

そのGitHubのページ、これに特有などISO 3166-1国 コードの列挙型を含む国際化をサポートするための

パッケージ、ISO 639-1言語コードの列挙型、

例から、 (Githubのページから)利用可能なリストを参照するには、質問

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

簡単な例、

// 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()); 
} 
3

国コードの代わりに、国名

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")); 
} 
+0

有用な答え –

関連する問題