首页 > 解决方案 > 使用扫描仪识别整数和字符串,如果输入了某个字符串,则停止用户输入

问题描述

尝试使用扫描仪识别整数和字符串,并在输入某个字符串时停止用户输入。

Scanner myObj = new Scanner(System.in);
System.out.println("Enter number of students");
int numberof = myObj.nextInt();

需要这样做,如果用户键入“结束”,扫描仪将不再接受用户输入。我不能把行 int numberof = myObj.nextInt(); 在循环或其他东西中并限制变量范围,因为我在我的其余代码中使用 numberof 的值。

标签: javastringintegerjava.util.scanner

解决方案


您可以使用 Scanner#next ,然后在需要时解析整数。我不建议直接使用 Scanner#nextInt。

Scanner sc = new Scanner(System.in);
do {
  System.out.println("Enter number of students");
  String next = sc.next();
  if (next.equals("end")) break;
  else {
    try {
      int num = Integer.parseInt(next);
    } catch (NumberFormatException e) {
      System.out.println("Please enter a valid input");
    }
  }
} while (true);

推荐阅读