Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找包含字符串和双精度的文本文件中双精度的平均值(java)_Java_Sum_Double_Text Files_Average - Fatal编程技术网

查找包含字符串和双精度的文本文件中双精度的平均值(java)

查找包含字符串和双精度的文本文件中双精度的平均值(java),java,sum,double,text-files,average,Java,Sum,Double,Text Files,Average,我必须从包含字符串和双精度的文本文件中获得双精度的平均值。在我的代码中,我得到了多个长双精度,但我只需要一个双精度,这应该是平均值。请帮忙,我已经试着修了好几天了。是否也需要十进制格式或printf来打印平均值?这是我的代码,这是java for (int i = 0; i < length; i++) { double sum; int count; sum = 0.0; count = 0; Scanne

我必须从包含字符串和双精度的文本文件中获得双精度的平均值。在我的代码中,我得到了多个长双精度,但我只需要一个双精度,这应该是平均值。请帮忙,我已经试着修了好几天了。是否也需要十进制格式或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);
            }

我不知道为什么需要这个条件: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);

平均值是在循环结束后计算的,而不是在循环内部。

在循环外部移动两行

            double average= sum/count;
            System.out.println(average)

目前,您的程序在文件中找到每一个双精度后,都会以平均速度打印。

欢迎使用堆栈溢出!请参加并访问我们的网站,了解哪些问题适合本网站。如果你的问题符合本网站的要求,请这样做。只需在结尾处除以“计数”,这就是你不使用nb1/count+nb2/count进行平均的方法…请不要破坏你的帖子。一旦您提交了一篇文章,您就已经将内容授权给了Stack Overflow社区。根据SE政策,任何故意破坏行为都将恢复原状。