我需要编写程序的帮助,该程序会用Java读取一个文件,然后拆分单词,并计算笔记的平均值。因此,我在Java中有一个名为dziennik.txt的文件,在两行中,我有一个名字,姓氏,笔记的数量以及学生的笔记。看起来像这样:
马克·斯坦克3 4 5 6
维罗妮卡·李2 2 4
因此,我需要做的是拆分单词,以便程序将知道3个单词是多个音符,下一个是这些音符,它将计算平均值。现在我有这样的事情:
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Scanner;
public class FileWrite {
public static void main(String[] args) throws IOException {
StringBuilder dziennik = new StringBuilder();
try (BufferedReader br = Files.newBufferedReader(Paths.get("dziennik.txt"))) {
// read line by line
String line;
while ((line = br.readLine()) != null) {
dziennik.append(line).append("\n");
String[] pair = line.split(" ");
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
}
System.out.println(dziennik);
}
}
我对此并不陌生,所以请尽可能简单地向我解释一下。
最佳答案
类似于spork提到的内容。这是一种获取每个学生的平均笔记数的方法:
StringBuilder dziennik = new StringBuilder();
double total = 0; // Added line
double counter = 0; // Added line
try (BufferedReader br = Files.newBufferedReader(Paths.get("dziennik.txt"))) {
// read line by line
String line;
while ((line = br.readLine()) != null) {
dziennik.append(line).append("\n");
String[] pair = line.split(" ");
total = total + Double.valueOf(pair[2]); // Added line
counter++; // Added line
}
System.out.println("Average number of notes per student: " + total / counter); // Added line
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
}
System.out.println(dziennik);