Java如何使用Scanner只接受有效的int作为输入
我正在尝试使小型程序更强大,而我需要一些帮助。
Scanner kb = new Scanner(System.in);int num1;
int num2 = 0;
System.out.print("Enter number 1: ");
num1 = kb.nextInt();
while(num2 < num1) {
System.out.print("Enter number 2: ");
num2 = kb.nextInt();
}
2号必须大于1
我也希望程序自动检查并忽略用户是否输入字符而不是数字。因为现在,当用户输入例如数字r
而不是数字时,程序将退出。
回答:
用途Scanner.hasNextInt()
:
返回true是否可以int
使用nextInt()
方法将此扫描器输入中的下一个标记解释为默认基数中的值。扫描仪不会越过任何输入。
这是一个片段说明:
Scanner sc = new Scanner(System.in);System.out.print("Enter number 1: ");
while (!sc.hasNextInt()) sc.next();
int num1 = sc.nextInt();
int num2;
System.out.print("Enter number 2: ");
do {
while (!sc.hasNextInt()) sc.next();
num2 = sc.nextInt();
} while (num2 < num1);
System.out.println(num1 + " " + num2);
你不必parseInt
或不必担心NumberFormatException
。请注意,由于这些hasNextXXX
方法不会超越任何输入,因此,next()
如果你想跳过“垃圾”,则可能必须调用,如上所示。
以上是 Java如何使用Scanner只接受有效的int作为输入 的全部内容, 来源链接: utcz.com/qa/434815.html