Java DecimalFormat没有分组分隔符字符

Java DecimalFormat没有分组分隔符字符,java,Java,DecimalFormat使用',作为默认分组分隔符 告诉DecimalFormat我们不需要任何分组分隔符字符的正确方法是什么?我目前使用symbols.setGroupingSeparator('\0'),它似乎可以工作, 但它看起来很丑 DecimalFormatSymbols symbols = new DecimalFormatSymbols(); symbols.setDecimalSeparator('.'); symbols.setGroupingSeparator('\0');

DecimalFormat
使用
',
作为默认分组分隔符

告诉DecimalFormat我们不需要任何分组分隔符字符的正确方法是什么?我目前使用symbols.setGroupingSeparator('\0'),它似乎可以工作, 但它看起来很丑

DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator('.');
symbols.setGroupingSeparator('\0');

DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(symbols);

ParsePosition pp = new ParsePosition(0);
Number result = df.parse("44,000.0", pp);   // this should fail, as I don't want any grouping separatator char.
if (pp.getIndex() != input.length())
   throw new Exception("invalid number: " + input, 0);

告诉DecimalFormat我们不需要任何分组分隔符char的正确方法是什么?

您可以使用该方法,但这不会使格式拒绝数字,它只会在第一个分隔符处停止解析。使用格式解析数字将忽略第一个无效字符后的所有内容。

通过调用以下命令关闭分组:


将组分隔符设置为“\0”是一种不好的做法吗?
df.setGroupingUsed(false);