没有用于DecimalFormat的分组分隔符char

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的正确方法是什么?

通过调用setGroupingUsed关闭分组:

 df.setGroupingUsed(false); 

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