在 Java 中设置外语区域设置货币的格式
我正在尽我所能找到一种方法,使用Java在各种区域设置中格式化外币,这些语言环境不是该货币的默认语言。我发现了java.util.Currency,它可以表示用于各种语言环境的正确符号。也就是说,对于美元,它为我提供了美国的符号$,而在其他国家则为我提供了US$或USD。另外,我还发现了java.text.NumberFormat,它将为特定区域设置格式化货币。我的问题 - 利用。Currency 将提供适当的符号和代码,用于在其非默认区域设置中表示货币,但不会以任何特定于区域设置的方式设置货币的格式。NumberFormat 假定我传递给它的数字(带有区域设置)是该区域设置的货币,而不是外币。
例如,如果我使用getCurrencyInstance(Locale.GERMANY),然后格式化(1000),它假设我正在格式化1000欧元。实际上,我可能需要正确的德语本地化表示(正确的小数和千位分隔符,是否将符号放在金额之前或之后)用于美元,日元或任何其他货币。到目前为止,我能够得出的最好的方法是使用NumberFormat格式化数字,然后在输出中搜索非数字字符,并用从util派生的符号替换它们。货币。但是,这非常脆弱,并且可能不够可靠,无法实现我的目的。想法?任何帮助都非常感谢。