Java:基于ISO 4217货币cod的货币符号
程序下方打印出ISO 4217货币代码的货币符号。
import java.util.*; public class Currency{ public static void main(String args[]) { Currency myInstance = Currency.getInstance(args[0]); System.out.println(myInstance.getSymbol()); } }
问题 :输入字符串USD时工作正常。 对于像EUR这样的其他输入,只需返回货币代码。
样本输入,来自程序的输出:
input: java Currency USD output: $ input: java Currency EUR output: EUR -> I expect the symbol of Euro here
Currency.getSymbol()
返回相对于默认语言环境的货币符号。
获取默认语言环境的此货币的符号。 例如,对于美元,如果默认区域设置是美国,则符号为
"$"
,而对于其他区域设置,符号为"US$"
。 如果无法确定符号,则返回ISO 4217货币代码。
如果要将符号用于其他语言环境,请使用Currency.getSymbol(Locale locale)
。
System.out.println( Currency.getInstance("USD").getSymbol(Locale.US) ); // prints $ System.out.println( Currency.getInstance("USD").getSymbol(Locale.FRANCE) ); // prints USD System.out.println( Currency.getInstance("EUR").getSymbol(Locale.US) ); // prints EUR System.out.println( Currency.getInstance("EUR").getSymbol(Locale.FRANCE) ); // prints €
( 另见ideone.com )。
对我来说,即使在第一种情况下,您的代码也会返回USD。 这看起来,货币在很大程度上取决于JRE版本(对我来说是1.6)。 Perosnally我建议你编写自己的CUR到符号转换模块 – 比尝试使用这个模块容易得多。
如果有人需要它反过来(例如€ – > EUR)
String currency = €; String currencyCode = ""; for (Currency c : Currency.getAvailableCurrencies()) { if (c.getSymbol().equals(currency)) { currencyCode = c.toString(); } }
使用有限的Locale枚举仅适用于西化符号。 如果您希望使用以下提供的语言环境进行更全面的尝试:
Locale[] locales = Locale.getAvailableLocales();
使用此列表中的Locales给出符号而不是TLA非常一致。
- 如何使用坐标捕获android中的图像
- java错误:类中的构造函数不能应用于给定的类型
- 使用Java android中的Math.round方法舍入到小数点后6位
- Android WebRTC Custom Capturer
- 当通过首次打开数据库触发OnCreate时,无法从SQLIte Helper Oncreate打开SQLite数据库
- Android:问题图像分辨率
- 为什么桌面AES文件IO与Android AES文件IO不兼容?
- 在android中最喜欢的recyclelerview,使用sqlitecollections按钮
- Android Xml属性android:onClick =“…”如何在幕后工作?