DecimalFormat没有分组分隔符字符

14

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我们不需要任何分组分隔符?


将组分隔符设置为'\0'是一种不好的做法吗? - Gabriel
2个回答

40

通过调用setGroupingUsed方法可以关闭分组:

df.setGroupingUsed(false);

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接