我尝试输入后,我的程序返回不匹配异常在next.Double()上带点的数字; PS:我正在使用Locale.US
Scanner sc = new Scanner(System.in);
Locale.setDefault(Locale.US);
double nota1, nota2, resultado;
nota1 = sc.nextDouble();
nota2 = sc.nextDouble();
resultado = nota1 + nota2;
if (resultado < 60.0) {
System.out.println("NOTA FINAL = " + resultado);
System.out.println("REPROVADO");
}
else {
System.out.println("NOTA FINAL = " + resultado);
}
sc.close();
我尝试在第19行输入:“ 45.5”后收到异常错误消息(nota1 = sc.nextDouble();)。'''
错误消息:
线程“主”中的异常java.util.InputMismatchException在java.util.Scanner.throwFor(Scanner.java:864)在java.util.Scanner.next(Scanner.java:1485)在java.util.Scanner.nextDouble(Scanner.java:2413)在application.Program.main(Program.java:19)
您只需要将第一行的顺序更改为:
Locale.setDefault(Locale.US); Scanner sc = new Scanner(System.in);
要先创建系统默认语言环境,然后再创建扫描仪。创建新的扫描仪时,它将获取并使用在创建时设置的默认语言环境,因此必须在扫描仪初始化之前完成默认语言环境的设置。
或者,您也可以使用:
Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
直接设置要在扫描仪上使用的语言环境,而无需修改默认语言环境。