当前位置: 首页 > 知识库问答 >
问题:

如何使用扫描器只接受有效的int作为输入

魏泰
2023-03-14
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();
}

此外,我希望程序自动检查和忽略,如果用户输入一个字符,而不是一个数字。因为现在,当用户输入r而不是数字时,程序就会退出。

共有1个答案

国兴文
2023-03-14

使用scanner.hasnextint():

如果可以使用NextInt()方法将此扫描仪输入中的下一个标记解释为默认基数中的int值,则返回true。扫描仪不会前进超过任何输入。

这里有一个片段来说明:

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);
    null
 类似资料:
  • 问题内容: 我正在尝试使小型程序更强大,而我需要一些帮助。 2号必须大于1 我也希望程序自动检查并忽略用户是否输入字符而不是数字。因为现在,当用户输入例如数字而不是数字时,程序将退出。 问题答案: 用途: 返回true是否可以使用方法将此扫描器输入中的下一个标记解释为默认基数中的值。扫描仪不会越过任何输入。 这是一个片段说明: 你不必或不必担心。请注意,由于这些方法不会超越任何输入,因此,如果你想

  • 问题内容: 我不明白为什么第15行不做任何输入,将不胜感激:3 输出量 请输入您的问题的第一个数字!2552所以您选择了2552选择您的第二个数字41您选择了第二个数字41现在输入ur运算符 由于某种原因,输出在最后一行结束并停止,并且不接收任何信息! 问题答案: 您需要在调用行的后面立即调用,原因是仅要求下一个整数不会占用输入中的整个行,因此您需要通过调用来跳至输入中的下一个新行字符。 每次您需

  • 作为一个文本块并按enter键,我如何创建一个包含这三行的字符串? 使用scanner.nextLine()只能得到第一行。

  • 问题内容: 因此,我是一名新Java程序员,我试图弄清楚为什么一段代码无法正常工作。我遇到的问题是:“字符串兴趣= input.nextLine();”,它跳过了用户的输入并跳至下一个System.out,因此它仅在控制台中显示“您的个人资料…”在允许用户输入任何数据之前。抱歉,这是一个愚蠢的问题,我很新! 问题答案: 这样说: 其余代码可能与您上面的代码相同。 编辑: 它必须是这样的(我的意思是

  • 我是这样编译它们的: 确切的错误是这样的:

  • 我正在参加一个在线Java课程,并尝试我的第二个作业。第一项作业并不难,但这一项就差强人意了。我真的不知道从何说起。问题是这门课是在线的,基本的指导是阅读这些章节,然后编写程序。没有太多的指导,因为我的指导老师不在我身体上。 我以前从来没有使用过扫描器,也没有创建过二维数组。我的指导老师给出了在他的基础课程的每一个领域应该做什么的笔记,但我不知道从哪一个开始。 您的任务是实现一个类似的方案来存储任