【问题标题】:Integer inputs using nextInt()使用 nextInt() 的整数输入
【发布时间】:2012-08-26 08:44:20
【问题描述】:

所以,我使用 nextInt() 在命令行中从用户那里获取整数输入。但是,我的问题是;当用户没有输入整数时,即只按回车而不输入任何内容,nextInt() 不会终止,而是继续提示用户,直到用户输入整数。是否可以将第一个“无输入”作为输入,然后返回一条错误消息,指出没有输入整数? 提前致谢!

【问题讨论】:

标签: java input


【解决方案1】:
 String line = null;
    int val = 0;
    try {
      BufferedReader is = new BufferedReader(
        new InputStreamReader(System.in));
      line = is.readLine();
      val = Integer.parseInt(line);
    } catch (NumberFormatException ex) {
      System.err.println("Not a valid number: " + line);
    } catch (IOException e) {
      System.err.println("Unexpected IO ERROR: " + e);
    }
    System.out.println("I read this number: " + val);

【讨论】:

    【解决方案2】:

    您可以尝试/捕获。

    String input = ....
    try {
        int x = Integer.parseInt(input);
        System.out.println(x);
    }
    catch(NumberFormatException nFE) {
        System.out.println("Not an Integer");
    }
    

    【讨论】:

      【解决方案3】:

      尝试将输入作为字符串而不是整数。如果字符串为空,则应引发您提到的错误,否则将字符串转换为整数。我不知道你的程序流程是什么,所以它是一个一般的想法,根据输入需要解析字符串。此外,在使用此方法之前,您应该确保除了整数之外没有其他任何内容作为输入。

      【讨论】:

        【解决方案4】:

        我假设您使用的是Scanner。如果是这样,那么您需要指定您将使用哪个delimiter。像这样的:

        Scanner scanner = new Scanner(System.in);
        scanner.useDelimiter(System.getProperty("line.separator")); 
        while (scanner.hasNextInt()){
            int i = sc.nextInt();
            /** your code **/
        }
        

        【讨论】:

          【解决方案5】:

          试试这个

           int number;
           boolean is_valid;
          
              do {
                  try {
                      System.out.print("Enter Number :");
                      Scanner kbd = new Scanner(System.in);
                      number = kbd.nextInt();
                      is_valid = true;
                  } catch (Exception e) {
                      System.out.println("Invalid Integer ");
                      is_valid = false;
                  }
              } while (!is_valid);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-05-21
            • 1970-01-01
            • 2013-03-09
            • 1970-01-01
            • 2019-02-20
            相关资源
            最近更新 更多