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

如何坚持用户输入是一个整数?

红智鑫
2023-03-14
问题内容

这里的基本问题..我将首先要求您不要用任何代码响应,因为那样可能只会使我进一步困惑(对noob编程)。我正在寻找有关如何解决此问题的明确解释。

我有一台扫描仪,可以读取用户的输入。提示用户输入一个介于1到150之间的int值(仅整数)。我得到的值如下:

    Scanner scan = new Scanner(System.in);
    int input = scan.nextInt();

继续我的程序,一切正常。

不幸的是,代码并不是完全防弹的,因为任何非整数的输入都可能破坏它(字母,符号等)。

我如何使代码更健壮,可以验证仅输入了int?

这些是我希望得到的结果:

可以说输入是:

23 -> valid
fx -> display an error message, ask the user for input again (a while loop would do..)
7w -> error, again
3.7 -> error
$$ -> error
etc

问题答案:

Scanner.hasNextInt()返回true下一个标记是否为数字,false否则返回。

在此示例中,我调用hasNextInt()。如果返回true,我将经过一会儿并设置输入;如果返回false,则放弃输入(scanner.next();)并重复。

Scanner scan = new Scanner(System.in);
while(!scan.hasNextInt()) {
    scan.next();
}
int input = scan.nextInt();


 类似资料:
  • 当用户输入字符串(例如“”)时,程序应该给出输出“”,然后提示用户键入有效输入。当我键入字符串时,我会在线程“main”java.util.InputMismatchException中得到错误消息

  • 所以我把Java作为数学学位要求的一部分,并且偶然发现了这个代码的一个问题。本质上,代码应该从用户那里接收数字,直到他们键入零。只要只输入数字,它就可以正常工作。但是,如果用户输入一个字母或符号,程序就会得到一个异常。有没有一种简单的方法可以验证用户输入的数字而不会得到异常? 所以我已经尝试了你展示的尝试/捕捉。但我还是遇到了非数字的例外。输入代码如下:

  • 我不知道用户会输入多少个数字,并且我需要程序在到达行尾时停止在数组中插入数字,因为在新行中用户会输入一个与此无关的数字。 例如: 用户可以输入: 1 5 7 8 9 5 4 或: 5 4 8 9 4 2 1 3 2 4 7 我需要的数组是,示例1:[1,5,7,8,9,5]

  • 我如何使它能够提示用户在一行中输入多个由空格分隔的整数。如果第一个整数为0或小于0,当输入所有整数并按下回车键时,它将打印出“不良输入”。此外,我如何使它,当用户输入一个负数在行的末尾,它将停止输入数字,并使乘法所有他们在一起。 这是我到目前为止所拥有的,但我不确定我做得对不对。

  • 我试图写代码,要求用户的年龄,然后他们输入它,但我希望数字出现在问题旁边后,你输入它。 我想要的是: 有什么建议吗?

  • 问题内容: 我正在尝试进行多项选择调查,以允许用户从选项1-x中进行选择。如何做到这一点,以便用户输入除数字以外的任何字符,返回“那是无效答案”之类的内容 问题答案: 您的代码将变为: 它的工作方式是使循环无限循环,直到仅放入数字为止。因此,如果我输入“ 1”,它将破坏循环。但是如果我放“ Fooey!” 该语句将捕获“将引发的错误” ,并且该循环将循环,因为它没有被破坏。