Java 这段代码引发了一个Integer.parseInt行异常(数据[2])
在myJava 这段代码引发了一个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
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())