在带有字符串和双打的文本文件中查找双打的平均值(java)

时间:2018-11-18 21:08:15

标签: java sum double text-files average

“我必须从带有字符串和双打的文本文件中获取双打的平均值。通过我的代码,我得到了多个长双打,但我只需要一个双打,应该是平均值。请帮助,我我已经尝试修复了几天。是否也需要十进制格式或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);
            }

2 个答案:

答案 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)

当前,您的程序在文件中发现的每两次打印后都将打印运行平均值。