我正在开发一个菜单驱动的程序,该程序带有用户想要做的数字选项。输入后2
,用户可以通过输入新地址来更新他们的地址,如下所示:
if (edit == 2) {
System.out.print("Please enter your new address: ");
String address = in.nextLine();
stmt.executeUpdate("UPDATE PATIENTS " +
"SET ADDRESS = '" + address + "' " +
"WHERE LOGIN = '" + username + "'");
}
我遇到的问题是,一旦用户输入选项2
,他们就永远无法尝试输入他们的地址,因为程序认为输入了一个空值,然后尝试在数据库上执行更新语句,但由于地址不能是NULL
。
是否有理由拾取我丢失的垃圾值?对于用户尝试使用in.next()
and编辑其姓名、年龄等的其他选项,它似乎可以正常工作in.nextInt()
。无论出于何种原因,in.nextLine()
默认为NULL
在用户有机会输入任何内容之前。
我试过String trash = in.next();
在阅读之前写一条线in.nextLine()
。这会阻止程序崩溃,但会切断地址的数字部分。