import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner("数学87分,物理76分,英语96分"); int math = scanner.nextInt(); int physics = scanner.nextInt(); int english = scanner.nextInt(); scanner.close(); int total = math + physics + english; double average = total / 3.0; System.out.println("总成绩:" + total + ",平均成绩:" + average); }}
时间: 2024-01-26 13:04:34 浏览: 34
这段代码存在问题,因为在创建Scanner对象时,传入的参数是一个字符串,但是代码中并没有使用Scanner的next方法来读取字符串中的整数值,因此会导致程序抛出NoSuchElementException异常。
正确的代码应该是这样的:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("数学87分,物理76分,英语96分");
scanner.useDelimiter("[^0-9]+"); // 使用正则表达式指定分隔符
int math = scanner.nextInt();
int physics = scanner.nextInt();
int english = scanner.nextInt();
scanner.close();
int total = math + physics + english;
double average = total / 3.0;
System.out.println("总成绩:" + total + ",平均成绩:" + average);
}
}
```
在代码中,我们使用了Scanner的useDelimiter方法,将分隔符指定为非数字字符,这样就可以正确地读取字符串中的整数值了。