解析字符串。字符串由键盘输入,例如:数学87.0分,物理76.0分,英语96.0分。编写一个Java应用程序,解析该字符串中的考试成绩,并计算出总成绩以及平均分数(输出时均保留2位小数点)。 输入样例: 数学87.0分,物理76.0分,英语96.0分 输出样例: Sum:259.00 Average:86.33 (1)本题源程序: public class Main { public static void main(String args[]) { String str = "数学87.0分,物理76.0分,英语96.0分"; Scanner scanner =【代码1】 //使用构造方法Scanner(String str)创建scanner String regex = "[^0123456789.]+"; 【代码2】 /*scanner调用useDelimiter(String regex)*/ double sum=0; int i=0; while(scanner.hasNext()){ try{ double score = 【代码3】 //scanner调用nextDouble()返回数字单词 sum = sum+score; i++; System.out.println(score); } catch(InputMismatchException exp){ String t = scanner.next(); } } 【代码4】 //输出总分 【代码5】 //输出平均分 } }
时间: 2024-01-27 22:03:24 浏览: 90
5132程序设计.docx
这道题需要填写5个空缺的代码段,分别为:
1. 使用构造方法Scanner(String str)创建scanner
2. scanner调用useDelimiter(String regex)
3. scanner调用nextDouble()返回数字单词
4. 输出总分
5. 输出平均分
填写的代码如下:
```java
import java.util.Scanner;
import java.util.InputMismatchException;
public class Main {
public static void main(String args[]) {
String str = "数学87.0分,物理76.0分,英语96.0分";
Scanner scanner = new Scanner(str); //使用构造方法Scanner(String str)创建scanner
String regex = "[^0123456789.]+";
scanner.useDelimiter(regex); //scanner调用useDelimiter(String regex)
double sum = 0;
int i = 0;
while (scanner.hasNext()) {
try {
double score = scanner.nextDouble(); //scanner调用nextDouble()返回数字单词
sum = sum + score;
i++;
System.out.println(score);
} catch (InputMismatchException exp) {
String t = scanner.next();
}
}
System.out.printf("Sum: %.2f\n", sum); //输出总分
System.out.printf("Average: %.2f\n", sum / i); //输出平均分
}
}
```
运行结果:
```
87.0
76.0
96.0
Sum: 259.00
Average: 86.33
```
阅读全文