Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 格式化字符串以匹配模式_Java_Regex_String_String Formatting - Fatal编程技术网

Java 格式化字符串以匹配模式

Java 格式化字符串以匹配模式,java,regex,string,string-formatting,Java,Regex,String,String Formatting,我看了这么多,但没有找到一个类似于我的问题的答案 我需要根据地区设置货币格式 例如: 我有金额11349,我的地区在美国的某个地方。我从我们的CMS中提取的格式如下:$,##0.00 我需要使用该模板使金额“11349”如下所示:$11349.00 有人知道如何处理这个问题吗?如果已经有一个问题可以解决这个问题,我很抱歉-我没有找到它,如果您能给我指一下,我将不胜感激。支持语言环境,并根据您的问题生成格式,同时避免使用正则表达式: Locale locale = new Locale("en",

我看了这么多,但没有找到一个类似于我的问题的答案

我需要根据地区设置货币格式

例如:

我有金额
11349
,我的地区在美国的某个地方。我从我们的CMS中提取的格式如下:
$,##0.00

我需要使用该模板使金额“11349”如下所示:
$11349.00

有人知道如何处理这个问题吗?如果已经有一个问题可以解决这个问题,我很抱歉-我没有找到它,如果您能给我指一下,我将不胜感激。

支持
语言环境
,并根据您的问题生成格式,同时避免使用正则表达式:

Locale locale = new Locale("en", "US");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(11349));  
支持
区域设置
并根据您的问题生成格式,避免使用正则表达式:

Locale locale = new Locale("en", "US");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(11349));  
使用区域设置(“en”、“US”)

然后您将得到如下输出:

$11,349.00
使用区域设置(“en”、“US”)

然后您将得到如下输出:

$11,349.00

如果您的区域设置是US,那么这将产生所需的结果

    String s = new DecimalFormat("$#,##0.00").format(11348);

如果您的区域设置是US,那么这将产生所需的结果

    String s = new DecimalFormat("$#,##0.00").format(11348);

你为什么要用大十进制来包装它?你为什么要用大十进制来包装它?我会把这个标记为接受的答案。然而——我忘了在我的问题中提到这一点——当您使用
NumberFormat.getCurrencyInstance(locale)
时,格式并不总是您得到的格式。对于我的特定问题,答案很可能是最好的。不过,谢谢你,这个答案清晰易读:)我将把它标记为已接受的答案。然而——我忘了在我的问题中提到这一点——当您使用
NumberFormat.getCurrencyInstance(locale)
时,格式并不总是您得到的格式。对于我的特定问题,答案很可能是最好的。不过,谢谢你,这个答案清晰易读:)谢谢!它将如何处理浮动?例如,如果我将其传递到
883.0
,该怎么办?$883.00此模式定义数字在小数点后始终有两位数字。谢谢!它将如何处理浮动?例如,如果我将其传递到
883.0
,该怎么办?$883.00此模式定义数字在小数点后始终有两位数字。