在尝试创建对象并使用文本文件中的数据将它们添加到ArrayList时,程序抛出了NumberFormatException,我完全不知道为什么,一切似乎都对我好。以下是发生异常的方法:
static void read(String file) {
anime.clear();
try {
Scanner fin = new Scanner(file);
while (fin.hasNextLine()) {
String[] vals = fin.nextLine().split("[ ]");
anime.add(new Anime(Integer.parseInt(vals[0]),
vals[1],
Integer.parseInt(vals[2]),
Integer.parseInt(vals[3])));
}
fin.close();
} catch(Exception e) {
System.out.println("ERROR: Something went wrong!");
e.printStackTrace();
System.exit(-1);
}
}
这是文本文件:
0 Angel_Beats! 13 2010
0 Baccano! 13 2007
0 Bakemonogatari 15 2009
0 Berserk 25 1997
0 Clannad 23 2007
答案 0 :(得分:0)
问题可能是您的split()
电话。只需split(" ")
而不使用方括号。
答案 1 :(得分:0)
当您尝试将eg:"abc"
值的inavlid字符串转换为整数时调用NumberFormatException。
这是
有效字符串为eg"123"
。
在你的情况下按空格划分..
split(" ");
将按" "
分隔行数。
答案 2 :(得分:0)
我将Scanner fin = new Scanner(file);
更改为Scanner fin = new Scanner(new File(file));
,现在效果很好。我不认为区别很重要但你去了。