Java 使用nextInt()的整数输入

Java 使用nextInt()的整数输入,java,input,Java,Input,因此,我使用nextInt()从命令行中的用户获取整数输入。但是我的问题是,;当用户不输入整数,即只按enter键而不输入任何内容时,nextInt()不会终止,而是继续提示用户,直到用户输入整数为止。是否可以将第一个“无输入”作为输入,然后返回一条错误消息,说明未输入整数? 提前谢谢 我假设您使用的是扫描仪。如果是这样,那么您需要指定将使用哪个分隔符。大概是这样的: String line = null; int val = 0; try { BufferedRe

因此,我使用nextInt()从命令行中的用户获取整数输入。但是我的问题是,;当用户不输入整数,即只按enter键而不输入任何内容时,nextInt()不会终止,而是继续提示用户,直到用户输入整数为止。是否可以将第一个“无输入”作为输入,然后返回一条错误消息,说明未输入整数?
提前谢谢

我假设您使用的是
扫描仪
。如果是这样,那么您需要指定将使用哪个
分隔符。大概是这样的:

 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);
Scanner scanner = new Scanner(System.in);
scanner.useDelimiter(System.getProperty("line.separator")); 
while (scanner.hasNextInt()){
    int i = sc.nextInt();
    /** your code **/
}

你可以试试看

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

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

尝试此方法

 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);
如果您添加一个,并指定您正在使用java.util.Scanner,它可能会重复,这将帮助所有人。