在Java中,如何将数字格式化为字符串,使其格式为“ xxx.xxx.xxx,yy”?

托尼克斯

Java中是否有一个类,可让您将“ 102203345.32”之类的数字格式设置为此“ 102.203.345,32”并返回字符串类型?

我想获得一个字符串,其中数千个字符之间用'。'分隔。小数点之间用逗号“,”分隔。

有人可以帮我吗?我找到了DecimalFormat类,并尝试对其进行自定义:

public class CustomDecimalFormat {
static public String customFormat(String pattern, double value ) {
      DecimalFormat myFormatter = new DecimalFormat(pattern);
      String output = myFormatter.format(value);
      return output;
}
}

但是当我这样调用customFormat方法时:CustomDecimalFormat.customFormat(“ ###。###,00”)我得到一个异常...

我该怎么办?

谢谢!

马克·托波尼克(Marko Topolnik)

确保阅读并理解Javadoc的“特殊模式字符”部分,尤其是以下注意事项:

此处列出的字符用于非本地化模式。本地化模式使用从该格式化程序的DecimalFormatSymbols对象中获取的相应字符代替,这些字符会失去其特殊状态。

如果这样做了,应该清楚您必须使用适当的构造函数并提供适当配置的分隔符/分组字符,而在模式本身中,点和逗号具有特殊含义。

实际上,上述所有复杂性都为您提供方便:它允许您自定义数字格式并将其本地化。

这是一个对我有用的代码示例:

final DecimalFormatSymbols syms = new DecimalFormatSymbols();
syms.setDecimalSeparator(',');
syms.setGroupingSeparator('.');
DecimalFormat myFormatter = new DecimalFormat("###,###.00", syms);
System.out.println(myFormatter.format(1234.12));

您还可以在应用本地化模式地方使用变体,以获得更直观的代码:

final DecimalFormatSymbols syms = new DecimalFormatSymbols();
syms.setDecimalSeparator(',');
syms.setGroupingSeparator('.');
DecimalFormat myFormatter = new DecimalFormat("", syms);
myFormatter.applyLocalizedPattern("###.###,00");
System.out.println(myFormatter.format(1234.12));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C ++中的XXX注释

将格式xxxxxxxxxx更改为xxx-xxx-xxxx

熊猫,如何将数字转换为货币格式“XXX,XXX.xx $”

将格式为X XXX,XX的字符串转换为数字

我想用空格 XX XXX XXX 分隔字符串

R:分割格式为“ xxx; yyy; zzz;”的字符串

R:分割格式为“ xxx; yyy; zzz;”的字符串

从字符串 ZXXXXXXXXX 中查找电话号码 +Z XXX-XXX-XXX

如何格式化不同類型大小的字符串(例如 x、xxx、xx、xxx)的二維數組,使其在打印時看起來更像方形

交集 'xxx & xxx' 被简化为 'never' 因为属性 'xxx' 在某些成分中具有冲突类型

Dart 扩展 - 未为类型“xxx”定义方法“xxx”

F#枚举:应为xxx类型,但此处为xxx类型

如何从separte ui-xxx-xxx.R文件渲染UI

如何在某些文本的末尾获得“-> function('xxx','xxx')”

找不到方法XXX.YYY中引用的类XXX

tibrvsend在邮件中添加“ DATA =”和“ value = XXX.XXX”

$ HTTP_XXX_VARS与PHP中的$ _XXX是否不同?

如何让用户输入“XXX”结束?

“ on子句”中的未知列“ xxx”

分配中的左侧无效,“ this = xxx”

出现错误“dial tcp xxx:xxx:xxx:xxx:3306: connect: connection denied”的情况是什么以及如何避免此错误

java.lang.NoClassDefFoundError:无法初始化类xxx.xxx.xxx.HibernateUtil

如何避免编写类似“ XXX!= null”或“ XXX!= null || XXX.isEmpty”的代码

錯誤:KeyError:key package_name [xxx-xxx-xxx] not found(在 Julia 中)

无法解析第 xxx 行、第 xxx 列中的值 xxx

如何将51.xx.xx.xx:33xxx:user:pass格式化为user:[email protected]:33xxx

十进制数字的区域设置感知编辑控件子类(格式[sign] [xxx ...] [decimal分隔符] [yy ...])

如何使用 JavaScript 格式化我的电话号码,如 xxxx-xxx-xxx?

C#字符串unescape'&#xxx;'