在java中用3个组的空格分隔数字

Ser*_*gey 10 java split numbers

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

DecimalFormat df = new DecimalFormat("###,###.00");
df.format(number);
Run Code Online (Sandbox Code Playgroud)

所以这235235.234变成了234,234.23

我需要的是 234 234.23

我怎样才能做到这一点?

Jon*_*eet 22

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

试试这个:

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

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

DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(symbols);
df.setGroupingSize(3);
df.setMaximumFractionDigits(2);
Run Code Online (Sandbox Code Playgroud)

  • @Sergey与这个问题/答案并不真正相关,但是通过使用`_`分隔组,有一种知名技巧可以提高java 7及更高版本中数字文字的可读性.示例:`public final static long SUNDIAMETER = 1_390_000_000L;` (2认同)