2012-02-07 95 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