2012-02-07 57 views
3
Currency currency = Currency.getInstance(currencyCode); 

如何獲取貨幣的符號,因爲它會出現在其本地區域設置之一中,而不是默認區域設置?如何獲取貨幣的貨幣符號,因爲它會出現在其原生區域中的某個貨幣符號中?

currency.getSymbol()將無法​​工作,因爲這將基於默認的區域設置。 currency.getSymbol(Locale locale)將不起作用,因爲代碼將無法純粹基於currencyCode派生出適當的區域設置。

+0

A(!可能無益)的回答是,你不應該需要做到這一點。您正在顯示貨幣符號?以用戶當前的語言環境顯示它們。在他們所使用的語言環境中顯示多種貨幣是毫無意義的。考慮有多少個國家使用某種貨幣,它們中的每一個都將簡單地呈現爲$。絕望! – 2012-02-08 00:07:49

+0

這將是我最終走上的道路。 – Gabriel 2012-02-08 20:26:16

+1

我也想這樣做。我不關心區域設置。我只關心這個符號。我不關心這個符號是否與我的用例中的多個貨幣相同,即「$」,這並不重要。 – 2014-05-09 15:43:16

回答

2

雖然我同意你當你說「的代碼將無法推導純粹的基於CURRENCYCODE適當的語言環境」Currency.getInstance()也接受一個語言環境作爲參數。

我認爲這將是你最好的選擇。沒有更多的繼續,我不確定你將如何從你的代碼中的任何東西派生出Locale,但可以想象,如果你可以找到一種方法,你可以創建一個Locale對象,並用它來獲取貨幣的一個實例目的。它應該從那裏順利航行。

祝你好運!

參考文獻:

http://docs.oracle.com/javase/7/docs/api/java/util/Currency.html

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Locale.html

+1

另外,你可以設置你的語言環境使用的東西例如Locale.setDefault(Locale.UK); – northpole 2012-02-07 23:52:11

+0

當區域設置已知時,您的解決方案將工作。問題是關於何時貨幣代碼已知,但區域設置未知。 – Gabriel 2012-02-08 20:29:18