相当于 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 中。您可以在尝试使用下一个令牌之前测试是否存在 int
和 Scanner.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 个答案,这通常不是您首先想要的。
我希望这是一个简单的修复。我正在寻找一种方法来检测用户在提示输入 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 中。您可以在尝试使用下一个令牌之前测试是否存在 int
和 Scanner.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 个答案,这通常不是您首先想要的。