我正在使用Scanner.nextInt()
从用户那里接受一个整数作为输入。如何验证他输入的是整数而不是字母字符?
我正在使用Scanner.nextInt()
从用户那里接受一个整数作为输入。如何验证他输入的是整数而不是字母字符?
nextInt()
方法会在输入不是整数时抛出一个 InputMismatchException
异常。因此,您可以捕获该异常并执行条件操作。或者,您可以检查 hasNextInt()
方法,它将返回一个布尔值,指示下一个值是否为整数。 < /p >
if (scanner.hasNextInt()) {
int i = scanner.nextInt();
} else {
System.out.println("Not an int");
}
将其包装在 try/catch 中。请参阅this帖子。
try {
num = reader.nextInt();
} catch (InputMismatchException e) {
System.out.println("Invalid value!");
}
Scanner input = new Scanner(System.in);
int i;
System.out.print("Insert an integer number: ");
while(true)
{
try
{
i = input.nextInt();
break;
}
catch(InputMismatchException e)
{
System.out.print("You have to insert an integer number, try again: ");
}
}
如果不是整数,我想你可以使用try catch块来处理异常。
try {
int aInt = new Scanner(System.in).nextInt();
} catch (InputMismatchException e) {
//handler-code
}