解析带有负后缀的数字



有人可以向我解释为什么下面的代码给出这个输出吗?

1.2
null

运行以下代码:

String positive = "1.2+";
String negative = "1.2-";
DecimalFormat format = new DecimalFormat("0.0");
format.setPositiveSuffix("+");
format.setNegativeSuffix("-");  
format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.US));
System.out.println(format.parse(positive, new ParsePosition(0)));
System.out.println(format.parse(negative, new ParsePosition(0)));

虽然这有效,但我不喜欢模式的重复:

String positive = "1.2+";
String negative = "1.2-";
DecimalFormat format = new DecimalFormat("0.0+;0.0-");  
format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.US));
System.out.println(format.parse(positive, new ParsePosition(0)));
System.out.println(format.parse(negative, new ParsePosition(0)));

后缀是否不用于解析?

如 javadoc 中指定:

负子模式

是可选的;如果不存在,则以本地化减号为前缀的正子模式(在大多数区域设置中为"-")

在您的示例中,解析器正在等待"-1.2-",因此您必须添加以下行:

format.setNegativePrefix("");

有好的一天!

相关内容

  • 没有找到相关文章

最新更新