我有一個ISO 4217的數字貨幣代碼:840轉換成ISO 4217的數字貨幣代碼貨幣名稱
我想要得到的貨幣名稱:美元
我試圖做到這一點:
Currency curr1 = Currency.getInstance(「840」);
但我不斷收到java.lang.IllegalArgumentException異常
如何解決?有任何想法嗎?
我有一個ISO 4217的數字貨幣代碼:840轉換成ISO 4217的數字貨幣代碼貨幣名稱
我想要得到的貨幣名稱:美元
我試圖做到這一點:
Currency curr1 = Currency.getInstance(「840」);
但我不斷收到java.lang.IllegalArgumentException異常
如何解決?有任何想法嗎?
java.util.Currency.getInstance
僅支持ISO 4217貨幣代碼,而非貨幣編號。但是,您可以使用getAvailableCurrencies
方法檢索所有幣種,然後通過比較getNumericCode
方法的結果來搜索代碼爲840的幣種。
像這樣:
public static Currency getCurrencyInstance(int numericCode) {
Set<Currency> currencies = Currency.getAvailableCurrencies();
for (Currency currency : currencies) {
if (currency.getNumericCode() == numericCode) {
return currency;
}
}
throw new IllegalArgumentException("Currency with numeric code " + numericCode + " not found");
}
你必須提供如 「USD」 的代碼,然後將返回的Currency對象。如果您使用的是JDK 7,那麼您可以使用以下代碼。 JDK 7有一個方法getAvailableCurrencies()
public static Currency getCurrencyByCode(int code) {
for(Currency currency : Currency.getAvailableCurrencies()) {
if(currency.getNumericCode() == code) {
return currency;
}
}
throw new IllegalArgumentException("Unkown currency code: " + code);
}
您必須提供'Locale'。 – Hannes 2014-11-04 12:04:35
我還可以提供一個字符串:getInstance(String currencyCode) 返回給定貨幣代碼的Currency實例。 – 2014-11-04 12:12:50
我可以從數字代碼中獲取語言環境嗎? – 2014-11-04 12:13:19