我正在使用Java NumberFormat显示货币,并且想要添加货币 符号 ,例如: 港元:港币 加元:CA $ 新加坡元:S $ ...
不 美元,英镑,欧元等。
NumberFormat是否可以自动添加那些内容?或者您可以推荐其他解决方案?
答案 0 :(得分:0)
我找到了以下库:The Java Money and Currency API。它是JSR 354:用于货币和货币的Java api的实现。
这是我发现的代码,它产生的内容接近所需的要求(例如,澳元:1.00澳元):
MonetaryAmount oneAuDDollar = Monetary.getDefaultAmountFactory()
.setCurrency("AUD").setNumber(1).create();
MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(
AmountFormatQueryBuilder.of(Locale.US)
.set(CurrencyStyle.SYMBOL)
.set("pattern", "¤ #,##0.00###")
.build());
String formatted = format.format(oneAuDDollar);
System.out.println(formatted);
输出:A$ 1.00
答案 1 :(得分:-1)
看看这个website(首次Google搜索)
//JDK 11
NumberFormat nF = NumberFormat.getNumberInstance();
System.out.println("Initially Currency: " + nF.getCurrency().getSymbol());
nF.setCurrency(Currency.getInstance(Locale.CANADA));
System.out.println("Currency set as: " + nF.getCurrency().getSymbol());
将打印:
Initially Currency: $
Currency set as: CA$
对于JDK 8,您需要 getSymbol()和语言环境
//JDK 8
nF.setCurrency(Currency.getInstance(Locale.JAPAN));
System.out.println("Currency set as: " + nF.getCurrency().getSymbol(Locale.JAPAN));
也将显示符号
Currency set as: ¥