Java 向货币添加符号

Java 向货币添加符号,java,number-formatting,Java,Number Formatting,我使用Java NumberFormat显示货币,我想添加货币符号,如: 香港元:港元 加元:加拿大元$ 新加坡元:新加坡元 不是美元、英镑、欧元等 有没有办法让NumberFormat自动添加这些内容?或者你可以推荐一个不同的解决方案 看看这个(第一次谷歌搜索) 将打印: Initially Currency: $ Currency set as: CA$ 对于JDK 8,您需要使用localegetSymbol() //JDK 8 nF.setCurrency(Currency.getI

我使用Java NumberFormat显示货币,我想添加货币符号,如: 香港元:港元 加元:加拿大元$ 新加坡元:新加坡元

不是美元、英镑、欧元等

有没有办法让NumberFormat自动添加这些内容?或者你可以推荐一个不同的解决方案

看看这个(第一次谷歌搜索)

将打印:

Initially Currency: $
Currency set as: CA$
对于JDK 8,您需要使用localegetSymbol()

//JDK 8

nF.setCurrency(Currency.getInstance(Locale.JAPAN));

System.out.println("Currency set as: " + nF.getCurrency().getSymbol(Locale.JAPAN));
也将显示标志

Currency set as: ¥

我找到了以下库:。它是JSR354:JavaAPI的货币和货币实现

这是我发现的代码,它产生了一些接近期望的需求(例如澳元:A$1.00):


输出:
A$1.00

可能与Hi重复,在本文中,他们使用的是货币类,这不是答案。也许可以作为注释传递不,我知道如何获得符号,我想要标志看看这个。使用
nF.getCurrency().getSymbol()
@VSMent,我仍然得到CAD,而不是CA$或C$@guyshalev Hm。。工作顺利。我将在IDE中测试它。
Currency set as: ¥
    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);