私はアメリカの国名を持っていると仮定します。私はUSDに変換したいです。私はwebserviceからの国名のみを持っています。国名を通貨コードに変換するには?
私はこのコードを試しましたが、国名をLocaleオブジェクトに変換する方法はありません。誰でもこの問題を提案できますか?
String countryName=jsonObject.getString("country");
私はアメリカの国名を持っていると仮定します。私はUSDに変換したいです。私はwebserviceからの国名のみを持っています。国名を通貨コードに変換するには?
私はこのコードを試しましたが、国名をLocaleオブジェクトに変換する方法はありません。誰でもこの問題を提案できますか?
String countryName=jsonObject.getString("country");
を提供また、これはこの目的のために特別に設計されて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());
}
国コードの代わりに、国名
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"));
}
有用な答え –
ロケールは、国名ではなく、言語コードをコンストラクタのパラメータとして使用します。https://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#Locale(java)。 lang.String) – 1615903
あなたのコードの問題点を指摘してください - それは明らかに文書化されているので、なぜそれはうまくいくと思いますか? – 1615903
okは解決する方法を教えてください –