当前位置: 首页 > 面试题库 >

如何使用hasNextInt()捕获异常?我需要整数,但是如果输入是字符,那是不好的

金和雅
2023-03-14
问题内容

我一直在试图阻止例外,但我不知道怎么办。我尝试过parseIntjava.util.NormalExceptionMismatch等等。

有谁知道如何解决此问题?由于复制和粘贴,格式化有些偏离。

do
{
   System.out.print(
           "How many integers shall we compare? (Enter a positive integer):");
   select = intFind.nextInt();
   if (!intFind.hasNextInt()) 
       intFind.next();
       {
           // Display the following text in the event of an invalid input
           System.out.println("Invalid input!");
       }
}while(select < 0)

我尝试过的其他方法:

 do
    {
       System.out.print(
                   "How many integers shall we compare? (Enter a positive integer):");
       select = intFind.nextInt();
       {
            try{
                   select = intFind.nextInt();
               }catch (java.util.InputMismatchException e)
            {
               // Display the following text in the event of an invalid input
               System.out.println("Invalid input!");
               return;
            }
       }
    }while(select < 0)

问题答案:

在我看来,您想跳过所有内容,直到获得整数。此代码在这里跳过除整数以外的所有输入。

只要没有可用的整数(而(!in.hasNextInt())),则丢弃可用的输入(in.next)。当整数可用时-读取它(int num =
in.nextInt();)

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (!in.hasNextInt()) {
            in.next();
        }
        int num = in.nextInt();
        System.out.println("Thank you for choosing " + num + " today.");
    }
}


 类似资料:
  • 问题内容: 我听说捕捞是一种不好的做法,我认为这样做是明智的。让传播到顶部将允许检测出问题。但是很多时候我已经看到很多朋友直接被捕获,因此他们不必理会上面代码中可能发生的所有不同种类的异常。这是一个好习惯吗?还有哪些其他最好不处理的例外情况?此外,对我来说,处理一个确定了异常源的特定代码对我来说也很有意义。那么什么时候处理异常,什么时候不应该处理?最好不处理的异常清单可能是什么? 问题答案: 宠物

  • 我是一个绝对的初学者,没有任何编程语言的经验。 我写了一个程序作为将阿拉伯数字转换成罗马数字的练习。它起作用了。然而,如果输入的是字符串而不是整数,我想添加一部分来处理这个问题。我不知道该怎么做。我试图使用try/catch,但我不知道如何正确使用它。现在程序要求我输入两次数字。怎么办? 以下是他的主要方法:

  • 如果我的代码中有一个try/cat块,是否需要在方法头后面有一个throws语句? 如果不是必需的,那么我什么时候/为什么需要使用throws?-这只是为了阻止编译器失败吗?(也就是说,我告诉它,我期待着一个错误,这没关系)

  • 我有一个API,它返回的数据类型为_HttpClientResponse,因为我使用的是httpClient,我使用下面的 当我打印结果i/flatter(23708):字符串i/flatter(23708):{“结果”:[{“IPAddress”:“192.1.1.1”,“说明”:“Windows 2016 Server”},{“IPAddress”:“192.1.1.1”,“说明”:“Wind

  • 我的方法必须请求用户输入,检查它是否是整数,如果是,则返回该整数。我尝试了使用try-catch和inputmaschException。 当它循环时,我遇到了一个问题,如果我输入一个非整数,它会不断地抛出“无效输入”“输入整数:”而不是实际要求输入一个。

  • 我正在查看Java SE7的新功能,目前我正在: http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html 关于捕获多重功能,当我遇到这个语句时: 注意:如果一个捕捉块处理多个异常类型,那么捕捉参数是隐式最终的。在这个例子中,捕捉参数ex是最终的,因此您不能在捕捉块中给它赋值。 我从未注意到