我浏览了 SO,但没有找到与我类似的问题的答案。
我需要根据语言环境格式化货币。
例子:
我有金额11349
,我的地区在美国的某个地方。我从 CMS 中提取的格式如下所示:$#,##0.00
我需要使用该模板来获得金额“11349”,如下所示:$11,349.00
有谁知道如何解决这个问题?如果已经有关于 SO 的问题可以解决这个问题,我很抱歉 - 我没有找到它,如果你能指出我将不胜感激。
我浏览了 SO,但没有找到与我类似的问题的答案。
我需要根据语言环境格式化货币。
例子:
我有金额11349
,我的地区在美国的某个地方。我从 CMS 中提取的格式如下所示:$#,##0.00
我需要使用该模板来获得金额“11349”,如下所示:$11,349.00
有谁知道如何解决这个问题?如果已经有关于 SO 的问题可以解决这个问题,我很抱歉 - 我没有找到它,如果你能指出我将不胜感激。
NumberFormat支持Locales
并根据您的问题生成格式,并避免使用正则表达式:
Locale locale = new Locale("en", "US");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(11349));
如果您的语言环境是美国,那么这应该会产生所需的结果
String s = new DecimalFormat("$#,##0.00").format(11348);
使用区域设置(“en”,“US”)
Locale locale = new Locale("en", "US");
NumberFormat nf = NumberFormat.getCurrencyInstance(locale); //getting currency
System.out.println(nf.format("11349")); //cast string to numberFormat
然后你会得到输出
$11,349.00