Android 如何仅使用货币代码将数字格式化为货币?

Android 如何仅使用货币代码将数字格式化为货币?,android,number-formatting,Android,Number Formatting,我的业务问题如下:我有一个货币代码(例如“USD”)和一个数字(浮动或整数,我可以用任何一种方式解析),我需要使用货币代码将这个数字格式化为货币字符串。例如,124.3222和“USD”应创建字符串“$124.32” 我可以使用Currency.getInstance(String)创建一个Currency实例,它为我提供了符号和一些其他信息。但是,它不提供任何将数字格式化为字符串的方法。问题的另一方面,NumberFormat包含几个静态方法,这些方法返回一个NumberFormat实例,该实

我的业务问题如下:我有一个货币代码(例如“USD”)和一个数字(浮动或整数,我可以用任何一种方式解析),我需要使用货币代码将这个数字格式化为货币字符串。例如,
124.3222
和“USD”应创建字符串“$124.32”

我可以使用
Currency.getInstance(String)
创建一个
Currency
实例,它为我提供了符号和一些其他信息。但是,它不提供任何将数字格式化为字符串的方法。问题的另一方面,
NumberFormat
包含几个静态方法,这些方法返回一个
NumberFormat
实例,该实例能够执行我需要的操作(例如
NumberFormat.getCurrencyInstance()

NumberFormat
的问题是它们都以默认区域设置或传入的区域设置为中心。鉴于此应用程序的性质,区域设置毫无意义。语言环境和我需要格式化为字符串的货币之间没有关联。我既不能使用默认区域设置,也没有任何类型的区域设置标识符ISO值。我只有货币代码

我似乎离得很近,但离得很远。在我看来,
Currency
NumberFormat.getCurrencyInstance
之间有一个奇怪的分离
Currency
可以解析货币代码,但不能解析区域设置,也不能格式化字符串;而
locale
不能解析货币代码,但可以格式化字符串。我是不是遗漏了什么


编辑:我应该澄清一下,我可以使用
Currency
实例提供的符号和十进制计数手动格式化数字,但我不知道如何确定符号在字符串中的位置。无论如何,似乎我应该尽可能使用内置的货币格式。

我发现
NumberFormat
上有一个
setCurrency()
方法。因此,我要做的是调用
NumberFormat.getCurrencyInstance()
,以便为我的区域设置一个格式化程序,然后为需要格式化的货币调用
setCurrency()
。这似乎满足了我的需要。

从我对中链接答案的解释来看,货币格式是特定于语言环境的(即爱尔兰和意大利的小数分隔符不同)。