在我的playerList.txt
中,行的结构如下:
Nathaniel, Clyne, 12, first
为什么不能接受Integer.parseInt
?
我有一个MemberPlayer
类,它定义了一个MemberPlayer
,应该具有名字,姓氏,年龄和团队(第一或第二)。
线程“主”中的异常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)
public static final String FINAL_PATH = "playerList.txt";
public static ArrayList<MemberPlayer> getContent(String FINAL_PATH)
{
ArrayList<MemberPlayer> list = new ArrayList<MemberPlayer>();
try
{
Scanner sc = new Scanner(new File(FINAL_PATH));
while(sc.hasNextLine())
{
String data[] = sc.nextLine().split(",");
list.add(new MemberPlayer(data[0], data[1],
Integer.parseInt(data[2]), data[3]));
}
}
catch(FileNotFoundException e)
{
}
return list;
}
答案 0 :(得分:2)
" 12"
无法解析为有效的int
,因为它具有前导空格,但是"12"
可以:
Integer.parseInt(data[2].trim())
在访问它们之前,请确保所有data[0]
... data[3]
都存在。该文件可能已损坏或填充不正确。
答案 1 :(得分:1)
尝试用“,”或“,\\ s”分割。