java - Java 中的 while 循环不会对文档的最后一行执行操作

标签 java while-loop

我有一个如下所示的文本文档:

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/

相关文章:

java - REGEX - 删除某物周围的东西?

Java 到 C++ 语法

java - 当 java 给出错误 "The system cannot find the file specified"时,我如何知道找不到哪个文件?

javascript while循环没有结束

java - while循环读取csv文件越界

python - 如何在 while 循环中省略 it.combinations() 的一些结果

java - 比较java中的char变量

java - 如何触发一个方法从某个时刻开始?

java - 清除列表也会清除Java中列表的先前记录

java:传递一个对象并返回相同对象的类型