我的方法必须请求用户输入,检查它是否是整数,如果是,则返回该整数。我尝试了使用try-catch和inputmaschException。
当它循环时,我遇到了一个问题,如果我输入一个非整数,它会不断地抛出“无效输入”“输入整数:”而不是实际要求输入一个。
public int getInteger(){
Scanner i = new Scanner(System.in);
int value = 0;
for(boolean test = false; test == false;){
try{
System.out.println("Enter an integer: ");
value = i.nextInt();
test = true;
return value;
}
catch(InputMismatchException e){System.out.println("Invalid input");}
}
return value;
}
我建议您在nextInt()
之前调用hasNextInt()
,而不是试图捕获Exc0019
。类似于,
public int getInteger() {
Scanner scan = new Scanner(System.in);
while (scan.hasNextLine()) {
if (scan.hasNextInt()) {
return scan.nextInt();
} else {
System.out.printf("%s is not an int%n", scan.nextLine());
}
}
return -1;
}
你需要一个i.nextLine()
在循环的末尾。
catch(InputMismatchException e){System.out.println("Invalid input");}
i.nextLine();
}
这样做的目的是从输入流中读取新的行字符,
i.nextInt()
。这也是你的i.nextInt()
在后续调用中不断出错的原因。
我需要检查用户输入的内容是否正确。如果不是,我需要以msgbox的形式打印错误。 上面的代码似乎不起作用。 有什么想法吗?
我试图创建一个简单的程序,从用户输入中提取两个数字,并将它们相加在一起。为了正确使用它,我已经把它放下来了,但是如果用户输入其他东西,比如字符串,我会试图阻止崩溃。我如何检查输入而没有异常,因为我听说它们是糟糕的做法? 理想情况下,我希望它只是重复最初的问题,要求输入一个数字。我想这会在一个循环中? 编辑:新代码 旧代码
我有一个操作/方法来执行对数据库的插入。它需要几个字段,由于各种原因,操作可能会失败,因为一个或多个输入不是唯一的,或者因为它们与一些需要唯一的内部记录冲突。 反对这种方法的人指出,我们开发团队知道会导致失败的每个错误情况,应该返回错误代码并使用它来处理每个情况。 我看不出检查方法有任何明显的缺点。这些错误情况很有可能发生,您绝对必须在使用saveUserInfo()的任何地方解决它们。似乎正是为
我正在尝试创建一个简单的程序来验证用户的输入是否为正整数。但是,在使用Scanner.hasNextInt()方法时遇到了一个问题。如果输入包含一个整数,比如“5个6”,我的程序将把6读入为一个整数。但是,我希望这样的语句无效,并提示用户只需要输入一个整数值。因此程序将输出“请输入整数值:”。 这就是我的程序的样子: 编辑:我理解next()与nextLine()之间的区别。然而,我的问题是实际仅
问题内容: 如何检查Java整数是否为另一个数字的倍数?例如,if 是4的倍数。 问题答案: 使用余数运算符(也称为模运算符),该运算符返回除法的余数,并检查其是否为零:
问题内容: 如何检查给定的输入控件是否为空?我知道该字段上有一个属性,该属性告诉您给定的字段最初是否为空,但是如果有人填充该字段并再次提取整个内容该怎么办? 我认为上述功能是必要的,因为它对告知用户该字段必不可少。 任何想法将不胜感激! 问题答案: 很简单: 您也可以使用代替,如果这对您来说更自然。 更好的替代方法可能是真正利用Angular的形式能力: 在此处更新了Plnkr。