“我必须从带有字符串和双打的文本文件中获取双打的平均值。通过我的代码,我得到了多个长双打,但我只需要一个双打,应该是平均值。请帮助,我我已经尝试修复了几天。是否也需要十进制格式或printf来打印平均值?这是我的代码,这是java。“
for (int i = 0; i < length; i++) {
double sum;
int count;
sum = 0.0;
count = 0;
Scanner readFile = new Scanner(new File("members.txt"));
while (readFile.hasNextLine()) {
String line = readFile.nextLine();
if (line.length() == 4 && line.matches("-?\\d+(\\.\\d+)?")) {
count++;
sum += Double.valueOf(line);
double average= sum/count;
System.out.println(average);
}
答案 0 :(得分:0)
我不知道您为什么需要这种条件:line.length() == 4
,也是
为什么for
循环?
如果您想读取1个文本文件
double sum = 0.0;
int count = 0;
Scanner readFile = new Scanner(new File("members.txt"));
while (readFile.hasNextLine()) {
String line = readFile.nextLine();
if (line.length() == 4 && line.matches("-?\\d+(\\.\\d+)?")) {
count++;
sum += Double.valueOf(line);
}
}
double average= sum/count;
System.out.println(average);
平均值是在循环完成之后而不是在循环内部计算的。
答案 1 :(得分:0)
在while循环外移动以下两行。
double average= sum/count;
System.out.println(average)
当前,您的程序在文件中发现的每两次打印后都将打印运行平均值。