如何在Java中验证用户输入的是整数还是字母字符?

3

我正在使用Scanner.nextInt()从用户那里接受一个整数作为输入。如何验证他输入的是整数而不是字母字符?

6个回答

2
< p > nextInt() 方法会在输入不是整数时抛出一个 InputMismatchException 异常。因此,您可以捕获该异常并执行条件操作。或者,您可以检查 hasNextInt() 方法,它将返回一个布尔值,指示下一个值是否为整数。 < /p >
if (scanner.hasNextInt()) {
  int i = scanner.nextInt();
} else {
  System.out.println("Not an int");
}

1
如果输入不是整数,它将抛出一个异常。只需捕获该异常,您就知道用户输入了一个无法解析的值。

Scanner.nextInt()


1
如果用户输入了一个字母而你期望得到一个整数,你可以使用 Scanner.hasNextInt() 进行整数检测,如果结果是 false,则向用户显示错误信息。

1

将其包装在 try/catch 中。请参阅this帖子。

try {

      num = reader.nextInt();


    } catch (InputMismatchException e) {
         System.out.println("Invalid value!");
} 

此外,如果您注意到,在帖子中,这被包装在一个循环中,直到输入有效的整数为止。

1
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: ");
    }
}

0

如果不是整数,我想你可以使用try catch块来处理异常。

try {
    int aInt = new Scanner(System.in).nextInt();
}  catch (InputMismatchException e) {
    //handler-code
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接