使用Scanner类的实例解析“数学87分,物理76分,英语96分”中的考试成绩,并计算出总成绩以及平均分数
时间: 2024-05-04 14:16:57 浏览: 168
可以使用Scanner类的实例来解析字符串,代码如下:
```java
import java.util.Scanner;
public class ExamScores {
public static void main(String[] args) {
String scores = "数学87分,物理76分,英语96分";
Scanner scanner = new Scanner(scores);
int mathScore = scanner.nextInt();
int physicsScore = scanner.nextInt();
int englishScore = scanner.nextInt();
int totalScore = mathScore + physicsScore + englishScore;
double averageScore = totalScore / 3.0;
System.out.println("总成绩为:" + totalScore + " 分");
System.out.println("平均分数为:" + averageScore + " 分");
}
}
```
输出结果为:
```
总成绩为:259 分
平均分数为:86.33333333333333 分
```
相关问题
使用 Scanner 类的实例解析字符串:"数学87分,物理76分,英语96分"中的考试成绩,并计算出总成绩以及平均分数
在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);
}
}
```
运行上述代码,它会输出总成绩和平均分数。注意这只是一个基础示例,实际应用中可能需要处理更复杂的输入格式或者异常情况。
6.使用 Scanner 类的实例解析字符串"数学87分,物理76分,英语96分"中的考试成绩、并计算出总成绩以及平均分数(参看例子13)。
代码如下:
```java
import java.util.Scanner;
public class ExamScores {
public static void main(String[] args) {
Scanner scanner = new Scanner("数学87分,物理76分,英语96分");
int mathScore = scanner.nextInt();
int physicsScore = scanner.nextInt();
int englishScore = scanner.nextInt();
int totalScore = mathScore + physicsScore + englishScore;
double averageScore = (double) totalScore / 3;
System.out.println("数学成绩:" + mathScore);
System.out.println("物理成绩:" + physicsScore);
System.out.println("英语成绩:" + englishScore);
System.out.println("总成绩:" + totalScore);
System.out.println("平均分数:" + averageScore);
}
}
```
输出结果为:
```
数学成绩:87
物理成绩:76
英语成绩:96
总成绩:259
平均分数:86.33333333333333
```
阅读全文