所以,在我的程序中,我应该从一个文本文件中读取整数,以制作一个按键列出的数组。很容易,除了当我阅读文件时,我得到的只是零。 文件本身如下所示:
10111
86 78 95
20222
81 73 87
30333
71 63 77
40444
62 58 67
50555
51 62 48
我目前的代码是:
File stuff = new File("TheData.txt");
int [] temp = new int[36];
int spine =0;
try {
Scanner sc = new Scanner(stuff);
while(sc.hasNextInt()){
temp[spine++] = sc.nextInt();
System.out.println("" + temp[spine]);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(ProgramDriver3.class.getName()).log(Level.SEVERE, null, ex);
}
我正在尝试将这些数字读入临时数组中,以便我可以将它们分类到它们应该去的地方(长的是学生ID,短的是测试分数)。但是当我尝试运行这个东西时,我得到的只是
运行:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
BUILD SUCCESSFUL (total time: 1 second)
我不完全确定出了什么问题
答案 0 :(得分:1)
当你将数值放入数组时,你正在递增spine
,所以当你打印出temp[spine]
时,你就会打印下一个,你已经没有了。 t填充了!
更改此
while(sc.hasNextInt()){
temp[spine++] = sc.nextInt();
System.out.println("" + temp[spine]);
}
到
while(sc.hasNextInt()){
temp[spine] = sc.nextInt();
System.out.println("" + temp[spine]);
spine++;
}
答案 1 :(得分:1)
在您已经增加索引后,您将在索引处打印出该数字。更改print语句以打印索引而不增加。
System.out.println(temp[spine-1]);
此外,您已在阵列上设置独立于输入文件的长度。我会使用List,以便在读取太大的文件时,文件中的整数数不会导致ArrayIndexOutOfBoundsException。
List<Integer> list = new ArrayList<Integer>(36);
while (sc.hasNextInt()) {
list.add(sc.nextInt());
}
System.out.println(list);