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