我看过SO,但没有找到与我类似的问题的答案。
我需要根据区域设置格式化货币。
示例:
我的金额为11349
,我的地方位于美国的某个地方。我从CMS中提取的格式如下所示:$#,##0.00
我需要使用该模板将金额'11349'看作这样:$11,349.00
有没有人知道如何处理这个问题?如果有关于SO的问题已经解决了这个问题,我很抱歉 - 我没有找到它,如果你能指出我,我将不胜感激。
答案 0 :(得分:4)
NumberFormat支持Locales
并根据您的问题生成格式,并避免使用正则表达式:
Locale locale = new Locale("en", "US");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(11349));
答案 1 :(得分:1)
如果您的语言环境是美国,那么这应该产生所需的结果
String s = new DecimalFormat("$#,##0.00").format(11348);
答案 2 :(得分:0)
使用区域设置(“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