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此模式定义数字在小数点后始终有两位数字。