我正在尝试将字符串解析为int值。但是我收到一个NumberFormat异常。我正在编写以下代码:
Logger.out("Myprof", "Contact "+strContact);
try{
i = Integer.parseInt(strContact.trim());
Logger.out("Myprof", "Contact8686866 "+i);
}
catch(Exception e)
{
Logger.out("Myprof", "exce "+e.toString());
}
现在,当我像下面这样通过时:
i = Integer.parseInt("11223344");
我得到的i值为11223344。
我在哪里做错了?请帮忙。
最佳答案
9875566521
的输入值大于2147483647
的Integer.MAX_VALUE。而是使用Long
。 (BigInteger
不是Blackberry的选项)
Long number = Long.parseLong(strContact);
Logger.out("Myprof", "Contact8686866 " + number);
如果预期的输入数字大于
Long.MAX_VALUE
,则可以使用Character.iDigit作为验证值的替代方法:private static boolean isValidNumber(String strContact) {
for (int i = 0; i < strContact.length(); i++) {
if (!Character.isDigit(strContact.charAt(i))) {
return false;
}
}
return true;
}