我想读取包含两列浮点数的文件。然后我想打印每列的平均值。
有2列带数字 - 换句话说,每行有2个数字。这是一个例子:
文件包含:
7 3
5 2
9 11
10 12
输出应为:
第1列的平均值为7,75
第2列的平均值为7
到目前为止我有这个代码:
public class MainApp {
public static void main(String[] args) throws FileNotFoundException {
String fileName = "columns.txt";
double number = 0;
File file = new File(fileName);
Scanner scanner = new Scanner(file);
while (scanner.hasNext()) {
if (scanner.hasNextLine()) {
number = number + Integer.parseInt(scanner.next());
number = number / 2;
System.out.println(number);
}
}
scanner.close();
}
}
答案 0 :(得分:5)
如果你期望双输出,那么最好将数字解析为double,而不是int。
您可以使用item
在白色空格上分割线条,然后解析双打:
String.split
答案 1 :(得分:-2)
我改变了while循环。现在,在一个语句中读取两列的值,并将其分配给变量号并除以2。 原始代码在每次读取值时计算平均值,并且从不重置数字变量。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class MainApp {
public static void main(String[] args) throws FileNotFoundException {
String fileName = "columns.txt";
File file = new File(fileName);
Scanner scanner = new Scanner(file);
while (scanner.hasNext()) {
double number = (Integer.parseInt(scanner.next()) + Integer.parseInt(scanner.next())) / 2.0;
System.out.println(number);
}
scanner.close();
}
}