java - 从数组中读取并计算平均值

标签 java arrays

我正在尝试编写从数组中读取一行字符的代码,将这些字符分配给一个整数,然后对该行的所有整数求平均值,它对数组中的每一行执行此操作。这是我到目前为止所拥有的:

Scanner in = new Scanner(new File("Grades.txt"));

while(in.hasNextLine()) {
    int gp = 0;
    double gpa = 0;
    String line = in.nextLine();

    if(line.length() == 0) {
        continue;
    }

    line = line.substring(line.length()-15, line.length());

    String[] letters = line.split(" ");

    for (int i = 0; i < letters.length; i++) {

    if (letters[i].equals("H")) {
        gp += 7;
    }
    else if (letters[i].equals("D")) {
        gp += 6;
    }
    else if (letters[i].equals("C")) {
        gp += 5;
    }
    else if (letters[i].equals("P")) {
        gp += 4;
    }
    else if (letters[i].equals("F")) {
        gp += 0;
    }
    }

    gpa = gp / letters.length;

    System.out.println(gpa);
}

这是我正在使用的数组:

[, D, D, C, P, H, H, C]
[, H, H, H, D, D, H, H]
[, C, F, C, D, C, C, C]
[, F, F, F, P, C, C, C]
[, F, C, F, C, D, P, D]
[, D, D, F, D, D, F, D]
[, P, F, P, F, P, F, P]

这是代码的当前输出:

5.0
6.0
3.0
2.0
3.0
4.0
2.0

文本文件的内容:

45721 Chris Jones D D C P H H C D
87946 Jack Aaron H H H D D H H H
43285 Ben Adams C F C D C C C P
24679 Chuck Doherty F F F P C C C F
57652 Dean Betts F C F C D P D H
67842 Britney Dowling D D F D D F D D
22548 Kennedy Blake P F P F P F P P

我走的路正确吗?有更简单的方法吗?任何帮助将不胜感激。

最佳答案

简单说明一下,以免您以后感到悲伤

不应该

line = line.substring(line.length()-16, line.length()-1);

取而代之

line = line.substring(line.length()-15, line.length());

获得所有成绩?

然后您需要将 if 语句放入 for 循环中,该循环遍历数组的每个值(将 letters[1] 替换为 letters[i])

关于java - 从数组中读取并计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292314/

相关文章:

javascript - 如何将多维数组中的单个对象推送到数组?

适配器中的Android帧动画

php - 连接数组的所有值

java - 如何在随机日历输出中打印星号

java - 自定义注释不适用于嵌套对象字段

java - 服务器返回 HTTP 响应代码 : 401 for URL (pass username and password in URL to access a file)

javascript - 在 PHP 中创建一个具有深度和顺序列的数组

jQuery 从数组中旋转类

java - 如何注入(inject) ApplicationContext 本身

java - Android 如何使用 MediaRecorder 录制音频并输出为原始 PCM?