Java的ParseInt方法可以快乐地解析带有前导零的十进制值,而不会抛出异常,并剥离前导零:
int value = Integer.parseInt("050", 10);
将导致整数值为50。
但是,我的应用程序要求拒绝此类字符串作为无效输入。我目前解决这个问题的方法是将解析后的整数转换回字符串,并比较原始/解析后的字符串的长度,以查看是否有任何字符被剥离,例如:
String original = "050";
value = Integer.parseInt( "050", 10);
String parsed = Integer.toString(value);
if (original.length() != parsed.length()) {
System.exit(1);
}
这种方法可以正常运行,但感觉有些不专业。有没有更好的方法来检测和处理前导零?
0050
。此外,前导空格或类似的内容呢? - Chris Sprague0050
应该被捕获。 - s-lowparseInt
问题,而另一个问题则是不同的问题,并且是在Javascript中...(因此报告的重复是不正确的。) - Chris Sprague