相当于 string.isempty 的整数

Int equivalent of string.isempty

我希望这是一个简单的修复。我正在寻找一种方法来检测用户在提示输入 int 值时是否按下了回车键。我知道 .isEmpty 不适用于声明为 int 的值,解决这个问题的最佳方法是什么?

System.out.println("Please enter the first number:");
    user_number1 = input.nextInt();
        if (user_number1.isEmpty){

        }

int 不可能为空。 input.nextInt() 在用户输入非空格值之前不会继续。如果它不是 int,它会抛出 InputMismatchException。这记录在 Scanner.nextInt() Javadoc 中。您可以在尝试使用下一个令牌之前测试是否存在 intScanner.hasNextInt()

while (true) {
    System.out.println("Please enter the first number:");
    if (input.hasNextInt()) {
        user_number1 = input.nextInt();
        break;
    } else {
        System.out.println("not an int: " + input.nextLine());
    }
}

正如@Elliott Frisch 的回答所述,.nextInt() 调用不会转到 return 直到输入某种实际数字(或者,如果用户提交了其他内容, InputMismatchException 出现。

一个简单的替代方法是.. 然后不调用 .nextInt()。调用 .next(),检查结果字符串是否为空,如果不是,则使用 int userNumber = Integer.parseInt(theStringYouGotFromScannerNext);.

将其转换为整数

NB1:Java 惯例规定变量命名为 'userNumber1',而不是 'user_number1'。在罗马什么时候。

NB2:如果您希望每次用户按下回车键时扫描仪都读取 1 个答案,请在 new Scanner 之后立即调用 scanner.useDelimiter("\r?\n");。开箱即用,它为每个空格提供 1 个答案,这通常不是您首先想要的。