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