java现有如下格式的成绩单(文本格式)score.txt: 姓名:张三,数学72分,物理67分,英语70分。 姓名:李四,数学92分,物理98分,英语88分。 姓名:周五,数学68分,物理80分,英语77分。 要求按行读入成绩单,并在该行的后面结尾加上该同学的总成绩,然后再将该行写入到一个名字为scoreAnalysis.txt的文件中。
时间: 2024-03-20 11:45:19 浏览: 163
好的,我可以帮你写一个 Java 程序来实现这个需求。可以参考下面的代码:
```java
import java.io.*;
public class ScoreAnalyzer {
public static void main(String[] args) {
try {
// 打开 score.txt 文件
BufferedReader br = new BufferedReader(new FileReader("score.txt"));
// 创建 scoreAnalysis.txt 文件
BufferedWriter bw = new BufferedWriter(new FileWriter("scoreAnalysis.txt"));
String line;
// 逐行读取 score.txt 文件
while ((line = br.readLine()) != null) {
// 将该行的姓名、数学成绩、物理成绩、英语成绩提取出来
String name = line.substring(line.indexOf("姓名:")+3, line.indexOf(",数学"));
int mathScore = Integer.parseInt(line.substring(line.indexOf("数学")+2, line.indexOf("分,物理")));
int physicsScore = Integer.parseInt(line.substring(line.indexOf("物理")+2, line.indexOf("分,英语")));
int englishScore = Integer.parseInt(line.substring(line.indexOf("英语")+2, line.indexOf("分。")));
int totalScore = mathScore + physicsScore + englishScore;
// 将该行的总成绩添加到末尾
line += ",总成绩" + totalScore + "分。";
// 将该行写入 scoreAnalysis.txt 文件
bw.write(line);
bw.newLine();
}
// 关闭文件流
br.close();
bw.close();
System.out.println("分析完成,结果已写入 scoreAnalysis.txt 文件。");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个程序会读取 score.txt 文件中的每一行,提取出姓名、数学成绩、物理成绩、英语成绩,计算总成绩,并将总成绩添加到该行的末尾。然后将该行写入 scoreAnalysis.txt 文件中。
注意,这个程序假设每一行的格式都是一样的,即姓名、数学成绩、物理成绩、英语成绩的顺序不变,分数后面都有“分”字,并且每一行的末尾都有一个“。”号。如果实际情况不符合这个假设,程序可能会出现错误。
阅读全文