我有一个如下所示的文本文档:
2 2 1 4 2 8
2 4 1 4 2 8
2 6 1 4 2 8
我想找到第二列(2,4,6)中所有数字的平均值。我写了一个 while 循环,我认为应该这样做。其中totalVal是所有数字相加后的总值(value),totalNum是数字总数。
String line = data.nextLine();// read one line into a String
while (data.hasNextLine()) {
String[] field = line.split(" ");
totalVal += Double.parseDouble(field[1]);
totalNums += 1;
line = data.nextLine();
}
System.out.println(totalVal / totalNums);
问题是,我得到的答案返回值 3,这意味着它仅取文档中前两行文本的平均值,并忽略第三行。
有人可以告诉我如何更改循环,以便它也添加第三行文本中的值吗?
最佳答案
不清楚为什么你在循环之前读取一行。
如果您读取一行作为循环的第一步,那么所有行都将被正确处理。
while (data.hasNextLine()) {
String line = data.nextLine();
String[] field = line.split(" ");
totalVal += Double.parseDouble(field[1]);
totalNums += 1;
}
关于java - Java 中的 while 循环不会对文档的最后一行执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32810613/