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);
}
效果很好,但感觉有点hacky。是否有更好的方法来检测和处理前导零?