使用 Scanner 类的实例解析字符串:"数学87分,物理76分,英语96分"中的考试成绩,并计算出总成绩以及平均分数
时间: 2024-10-24 16:18:18 浏览: 70
在Java中,你可以使用`Scanner`类配合正则表达式来解析给定的字符串。首先,创建一个`Scanner`对象来读取字符串,然后通过匹配的方式提取每个科目的分数。假设每个分数都是由一个词(如“数学”、“物理”或“英语”)跟着一个整数组成,可以这样做:
```java
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String str = "数学87分,物理76分,英语96分";
Scanner scanner = new Scanner(str);
Pattern pattern = Pattern.compile("\\b(\\w+)\\d+分\\b"); // 正则表达式模式
double totalScore = 0;
int count = 0;
while (scanner.hasNext()) {
Matcher matcher = pattern.matcher(scanner.next());
if (matcher.find()) {
String subject = matcher.group(1); // 提取科目名
double score = Double.parseDouble(matcher.group().replace(subject + " ", "")); // 提取并转换成数字
totalScore += score;
count++;
}
}
double averageScore = totalScore / count;
System.out.println("总成绩: " + totalScore);
System.out.println("平均分数: " + averageScore);
}
}
```
运行上述代码,它会输出总成绩和平均分数。注意这只是一个基础示例,实际应用中可能需要处理更复杂的输入格式或者异常情况。
阅读全文