【问题标题】:Find average of doubles in text file with strings and doubles (java)使用字符串和双打查找文本文件中双打的平均值(java)
【发布时间】:2018-11-18 21:08:15
【问题描述】:

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

【问题讨论】:

  • 欢迎来到 Stack Overflow!请拨打tour 并访问我们的help center,了解适合本网站的问题类型。如果您可以edit您的问题符合本网站的要求,请这样做。
  • 最后除以 'count',这就是你用 ((nb1/count)+nb2)/count 取平均值的方法 ...
  • 请不要破坏您的帖子。提交帖子后,您已将内容授权给整个 Stack Overflow 社区 (under the CC BY-SA license)。根据 SE 政策,任何破坏行为都将被撤销。

标签: java sum double text-files average


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    将以下两行移到while循环之外。

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

    目前,您的程序在文件中找到的每个双倍后打印运行平均值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 2017-06-30
      • 2019-10-29
      相关资源
      最近更新 更多