当用户在输入对话框中未输入任何内容时,它将结束下面的循环。我调试了代码,当用户不输入任何内容时,名称的确为“”。
while(name == "" || name == null){
name = JOptionPane.showInputDialog("Enter your name:");
}
而且,当包含输入对话框的窗口关闭或取消时,程序不会退出循环。
谁能为我提供一些见识?
不要将字符串与name == ""
进行比较。使用"".equals(name)
,或者甚至使用name.isEmpty()
(自Java 6起可用)。
==
用于比较引用,而不是对象的值。更多信息here。
将代码更改为:
while(name == null || name.isEmpty()){
name = JOptionPane.showInputDialog("Enter you're name:");
}
使用“ ==”等于等于有很大的不同。也尝试使用equalsIgnoreCase()以确保
while(name == null || name.equalsIgnoreCase("")){
name = JOptionPane.showInputDialog("Enter you're name:");
}
停止比较字符串,并开始使用Apache Commons Lang StringUtils类。它可以很好地处理空值,并且经过了良好的测试。您将要使用StringUtils.isBlamk(name)
或StringUtils.isEmpty(name)