java.lang.NumberFormatException:用于输入字符串
日食告诉我,我无法找到解决方案
线程“main”中的exceptionjava.lang.NumberFormatException:对于输入字符串:“2463025552”,位于java.lang.Integer的java.lang.Integer.parseInt(未知源)中的java.lang.NumberFormatException.forInputString(未知源)。 Main.main中的parseInt(未知来源)(Main.java:31)
String s2[]=s.split("\\,"); Records rec=new Records(); rec.setName(s1[0]); rec.setAddres(s2[0]); phone = Integer.parseInt( s2[1].trim() ); System.out.println(phone);
我从文件中读取这种格式名称-adres,手机和广告在arraylist放电话我有问题
如果传递的字符串不是整数的有效表示,Integer.parseInt会抛出NumberFormatException。 在这里你试图通过2463025552 ,这是超出整数范围 。
用而不是长
long phone = Long.parseLong(s2[1].trim() )
真正的问题是电话号码不是整数。 这是一个String
。 您不应将其存储为数字,原因类似于您现在遇到的问题。 这同样适用于邮政编码,运动队的jersey号码以及许多其他“假”号码。
有符号32位整数最多只能读取2 ^ 31。 您必须使用更大的数据类型。 很长会让你达到2 ^ 63。
基本的是,我们不需要电话号码作为加法,减法等算术计算的一部分。因此我们可以安全地将其作为字符串。
2463025552
对于int数据类型超出范围,尝试给出较少的数字。 还要检查它是否是正确的数字格式(如没有空格等)
将您的数据类型更改为long或bigint。 你的字符串太长了,然后int就是为什么它有exception..
Integer.parseInt( s2[1].trim() );
这是你的问题。 因此,将解析Integer
更改为Long