【问题标题】:Split digits with spaces by groups of 3 in java在java中按3组用空格分割数字
【发布时间】:2012-08-14 07:15:42
【问题描述】:

有没有办法在java中拆分一个双数,以便所有3位数字组都用空格分隔,并且逗号后只出现2位数字?用逗号很容易将它们分开:

DecimalFormat df = new DecimalFormat("###,###.00");
df.format(number);

这样235235.234就变成234,234.23

我需要的是234 234.23

我该怎么做?

【问题讨论】:

    标签: java split numbers


    【解决方案1】:

    我相信您格式字符串中的逗号真的不是逗号 - 它只是您正在使用的 DecimalFormatSymbols 中的分组符号。

    试试这个:

    // TODO: Consider specifying a locale
    DecimalFormatSymbols symbols = new DecimalFormatSymbols();
    symbols.setGroupingSeparator(' ');
    DecimalFormat df = new DecimalFormat("###,###.00", symbols);
    

    或者作为最后一行的替代:

    DecimalFormat df = new DecimalFormat();
    df.setDecimalFormatSymbols(symbols);
    df.setGroupingSize(3);
    df.setMaximumFractionDigits(2);
    

    【讨论】:

    • @Sergey 与这个问题/答案没有真正的关系,但是有一个已知的技巧可以提高 Java 7 及更高版本中数字文字的可读性,方法是使用 _ 来分隔组。示例:public final static long SUNDIAMETER = 1_390_000_000L;
    • 我收到错误No signature of method: java.text.DecimalFormatSymbols.setGroupingSeparator() is applicable for argument types: (java.lang.String) values: [ ] Possible solutions: setGroupingSeparator(char), getGroupingSeparator() :(
    • @PrintlnParams:我的代码只调用setGroupingSeparate char,所以我不确定你使用的是什么代码......
    猜你喜欢
    • 2013-10-11
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2011-05-19
    • 2011-12-15
    相关资源
    最近更新 更多