输入对话框循环提前结束

问题描述 投票:0回答:4

当用户在输入对话框中未输入任何内容时,它将结束下面的循环。我调试了代码,当用户不输入任何内容时,名称的确为“”。

while(name == "" || name == null){
        name = JOptionPane.showInputDialog("Enter your name:");
    }

而且,当包含输入对话框的窗口关闭或取消时,程序不会退出循环。

谁能为我提供一些见识?

java while-loop joptionpane
4个回答
1
投票

从不使用==来比较String中的Java

使用方法equals(String)

请参阅以下link


2
投票

不要将字符串与name == ""进行比较。使用"".equals(name),或者甚至使用name.isEmpty()(自Java 6起可用)。

==用于比较引用,而不是对象的值。更多信息here

将代码更改为:

while(name == null || name.isEmpty()){
    name = JOptionPane.showInputDialog("Enter you're name:");
}

0
投票

使用“ ==”等于等于有很大的不同。也尝试使用equalsIgnoreCase()以确保

while(name == null || name.equalsIgnoreCase("")){
        name = JOptionPane.showInputDialog("Enter you're name:");
    }

0
投票

停止比较字符串,并开始使用Apache Commons Lang StringUtils类。它可以很好地处理空值,并且经过了良好的测试。您将要使用StringUtils.isBlamk(name)StringUtils.isEmpty(name)

© www.soinside.com 2019 - 2024. All rights reserved.