Java-获取字符输入时出现意外中断
刚接触Java的人,很难弄清楚为什么这不起作用,在接受用户输入的中途,它意外地停止了。我已经评论了它在哪里中断。错误消息: 线程“main”java.util.InputMismatchException中出现异常 有人能帮忙吗Java-获取字符输入时出现意外中断,java,Java,刚接触Java的人,很难弄清楚为什么这不起作用,在接受用户输入的中途,它意外地停止了。我已经评论了它在哪里中断。错误消息: 线程“main”java.util.InputMismatchException中出现异常 有人能帮忙吗 import java.util.Scanner; public class BasicInput { public static void main(String[] args) { Scanner scnr = new Scanner(Syste
import java.util.Scanner;
public class BasicInput {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
//Initializations
int userInt = 0;
double userDouble = 0.0;
String userString = "";
char character = '?';
//Take User Input
System.out.println("Enter integer: ");
userInt = scnr.nextInt();
System.out.println("Enter double: ");
userDouble = scnr.nextInt();
/* ERROR OCCURS HERE */
System.out.println("Enter character: ");
character = scnr.next().charAt(0);
System.out.println("Enter string: ");
userString = scnr.next();
//Print User Input
System.out.println(userString);
System.out.print(character);
System.out.print(userDouble);
System.out.print(userInt);
//Cast double to an integer
int userInt2 = 0;
userInt2 = (int)userDouble;
System.out.print(userInt2);
return;
}
}
读取int而不是double,将其更改为double,如下所示
//Take User Input
System.out.println("Enter integer: ");
userInt = scnr.nextInt();
System.out.println("Enter double: ");
userDouble = scnr.nextDouble();
将scnr.nextInt()的值分配给userDouble时会发生错误。您应该使用scnr.nextDouble()。此外,当您键入双精度字符时,请使用“,”作为分隔符,而不是“,”
它应该可以工作:)您要求双倍扫描,但是您的扫描仪得到了
scnr.nextInt()
——您认为这有问题吗?scnr.nextDouble()
不是更合适吗?是的!现在效果很好。我对Python更为熟悉(尽管还处于初级水平),所以scanner对我来说是个困惑。非常感谢。