Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这段代码引发了一个Integer.parseInt行异常(数据[2])_Java_Integer_Numberformatexception_Parseint - Fatal编程技术网

Java 这段代码引发了一个Integer.parseInt行异常(数据[2])

Java 这段代码引发了一个Integer.parseInt行异常(数据[2]),java,integer,numberformatexception,parseint,Java,Integer,Numberformatexception,Parseint,在myplayerList.txt中,我有这样构造的行: Nathaniel, Clyne, 12, first 为什么它不能接受Integer.parseInt 我有一个类MemberPlayer,它定义了MemberPlayer应该有名字、姓氏、年龄和团队(第一名或第二名) 线程“main”java.lang.NumberFormatException中的异常:用于输入 字符串:“12” 位于java.base/java.lang.NumberFormatException.forInpu

在my
playerList.txt
中,我有这样构造的行:

Nathaniel, Clyne, 12, first
为什么它不能接受Integer.parseInt

我有一个类
MemberPlayer
,它定义了
MemberPlayer
应该有名字、姓氏、年龄和团队(第一名或第二名)

线程“main”java.lang.NumberFormatException中的异常:用于输入 字符串:“12”
位于java.base/java.lang.NumberFormatException.forInputString NumberFormatException.java:65)
位于java.base/java.lang.Integer.parseInt(Integer.java:638)
位于java.base/java.lang.Integer.parseInt(Integer.java:770)
在FileHandler.getContent(FileHandler.java:53)
Main.Main(Main.java:55)

公共静态最终字符串final\u PATH=“playerList.txt”; 公共静态ArrayList getContent(字符串最终路径) { ArrayList=新建ArrayList(); 尝试 { Scanner sc=新扫描仪(新文件(最终路径)); while(sc.hasNextLine()) { 字符串数据[]=sc.nextLine().split(“,”); 添加(新的MemberPlayer(数据[0],数据[1], parseInt(数据[2]),数据[3]); } } catch(filenotfounde异常) { } 退货清单; }
“12”
无法解析为有效的
int
,因为它有前导空格,但
“12”
可以:

Integer.parseInt(data[2].trim())

确保所有的
数据[0]
<代码>数据[3]
在访问它们之前存在。文件可能已损坏或填写不准确。

尝试使用“、”或“、\\s”进行拆分。

看起来您需要从字符串值
“12”
中删除前导空格。(虽然我想说你应该修正你的正则表达式,而不是这样做)更好的是
.split(“,\\s*”,4)
。更好的是-在使用之前用逗号和trim分割。
Integer.parseInt(data[2].trim())