使用Scanner类和正则表达式解析字符串"数学:87.5分,物理:76.5分,英语:97分"中的考试成绩,并计算出总成绩,其中课程门数和课程名不确定。 输入为一字符串,输出为浮点数,精确度一位小数。
时间: 2023-12-15 14:05:25 浏览: 85
代码如下:
```java
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
double sum = 0.0;
int count = 0;
// 使用正则表达式匹配成绩
Pattern pattern = Pattern.compile("(\\d+\\.?\\d*)分");
Matcher matcher = pattern.matcher(input);
// 循环匹配
while (matcher.find()) {
double score = Double.parseDouble(matcher.group(1));
sum += score;
count++;
}
// 计算平均分
double avgScore = sum / count;
System.out.printf("%.1f", avgScore);
}
}
```
首先读入输入的字符串,然后使用正则表达式匹配出每个科目的成绩,使用循环将每个成绩加起来并记录科目数。最后计算平均分并输出即可。
阅读全文