用scanner类解析成绩"语文:86,数学:90,英语:93",算出总分和平均数
时间: 2023-07-19 22:14:49 浏览: 69
好的,这是一个Java语言相关的问题,我可以帮你回答。
以下是使用Scanner类解析成绩并计算总分和平均数的Java代码示例:
```java
import java.util.Scanner;
public class ScoreParser {
public static void main(String[] args) {
String input = "语文:86,数学:90,英语:93";
Scanner scanner = new Scanner(input);
int totalScore = 0;
int count = 0;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
totalScore += scanner.nextInt(); // 如果扫描到数字,则加到总分中
count++; // 统计科目数
} else {
scanner.next(); // 跳过非数字部分
}
}
double averageScore = (double) totalScore / count;
System.out.println("总分:" + totalScore);
System.out.println("平均数:" + averageScore);
}
}
```
解释一下代码:首先定义一个字符串 `input` 存放成绩信息,然后使用 `Scanner` 类扫描这个字符串。我们在 `while` 循环中使用 `hasNext()` 方法判断是否还有下一个输入项,如果有,则继续扫描;如果没有,则退出循环。在循环中,我们使用 `hasNextInt()` 方法判断下一个扫描项是否为整数,如果是,则加到总分中,并统计科目数;如果不是,则跳过这个非数字的扫描项。最后计算出平均数并输出结果。
输出结果为:
```
总分:269
平均数:89.66666666666667
```
这样,我们就成功地使用了Scanner类解析成绩并计算了总分和平均数。