格式化字符串以匹配模式

时间:2013-08-16 12:59:36

标签: java regex string string-formatting

我看过SO,但没有找到与我类似的问题的答案。

我需要根据区域设置格式化货币。

示例:

我的金额为11349,我的地方位于美国的某个地方。我从CMS中提取的格式如下所示:$#,##0.00

我需要使用该模板将金额'11349'看作这样:$11,349.00

有没有人知道如何处理这个问题?如果有关于SO的问题已经解决了这个问题,我很抱歉 - 我没有找到它,如果你能指出我,我将不胜感激。

3 个答案:

答案 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