【发布时间】:2012-07-31 22:12:11
【问题描述】:
尝试解析电话号码“5554567899”时出现以下错误
java.lang.NumberFormatException: For input string: "5554567899"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:495)
at java.lang.Integer.parseInt(Integer.java:527)
...
显然,电话号码是可以被解析的。我什至引用了this question,字节码结果是
53,53,53,52,53,54,55,56,57,57,
所以字符串中没有不可见的字符。我很难过,有人可以帮忙吗?
这是引发错误的代码部分,供参考:
String fullNumber = null;
for(Phone phone : party.getPhones()) {
if(phone != null && !phone.getDialNumber().isEmpty()) {
if(!phone.getAreaCode().isEmpty()) {
fullNumber = phone.getAreaCode();
}
fullNumber += phone.getDialNumber();
if(phone1 == null || phone1.equals(0)) {
LOGGER.debug(displayCharValues(fullNumber));
phone1 = Integer.parseInt(fullNumber);
}
}
phone1 属于 Java.lang.Integer 类型。
【问题讨论】:
-
电话号码不是号码。它们是字符串。首先,它们可以以一个或多个零开头。或 +。
-
您不应将电话号码视为整数。将其视为字符串,如果要将其保存到数据库中,请将其保存为
VARCHAR
标签: java string parsing integer