我有一个货币列表,让我们简单点说{USD, CAD, EUR, VND}
(但实际上我们支持40种货币)。我希望能够根据这些货币代码正确格式化数字。
要求:
1。。小数点分隔符和符号位置(数字的左侧或右侧)必须基于货币代码:
“ USD”-> $ 1,200.45(无论手机使用哪种语言和地区, 使用时,格式应为使用该货币代码的“最大”国家/地区之一(在本例中为美国)
编辑:这是通过手动构建String-> Locale的哈希图解决的,请参阅@David Conrad的评论。
2。符号必须始终是符号而不是字母:
“ USD”->“ $”(不是“ US $”或“ USD”)
“ CAD”->“ $”(不是“ CA $”或“ CAD”)
“ VND”->“₫” ...
我正在使用我的自定义字体,并确保其中包含所有受支持的符号。
我尝试使用getNumberInstance
(和getCurrencyInstance
)[answer],但是它不适用于所有电话(某些电话显示“ US $”,而不仅仅是“ $” )。 我尝试构建一个将货币代码链接到语言环境[answer]的哈希表,但这是一对多的关系,因此不可靠。
我现在处于尝试Joda Money甚至JavaMoney/jsr354-api的边缘,但是经过研究,这两个库都有其自身的特点,如果可能的话,我希望避免包含任何其他库。 / p>
那么,我们该怎么做?