繁体   English   中英

JOptionPane.showInputDialog

[英]JOptionPane.showInputDialog

我一直在想我的代码有什么问题

String s = JOptionPane.showInputDialog(null,"Enter discount type");
                if(s == "PWD"){
                    dis = 0.25;
                }
                else{
                    dis = 0;
                    JOptionPane.showMessageDialog(null, s);
                }

当我运行程序时,它将在“ else”块中执行代码,而不是执行“ if”块中的代码。 谢谢!

如果您使用:

s ==“ PWD”

Java通过“ PWD”值定义了另一个String,并将s的引用与必须使用的新var进行比较:

s.equals("PWD")

==测试引用是否相等(它们是否是同一对象)。
.equals()测试值是否相等(在逻辑上是否相等)。

Objects.equals()在调用.equals()之前检查是否为空,因此您不必这样做(从JDK7开始可用,在Guava中也可用)。

像这样尝试if(s.equals("PWD"))

您应该使用字符串的equals方法。

`s.equals("PWD")` instead of `s == "PWD"` or `equalsIgnoreCase(...)` for case insensitive comparison.
import javax.swing.JOptionPane;

公共课程测试{

public static void main(String[] args) {
    double dis = 0;
    // TODO Auto-generated method stub
    String s = JOptionPane.showInputDialog(null,"Enter discount type");
    if(s.equalsIgnoreCase("PWD")){
        dis = 0.25;
    }
    else{
        dis = 0;
        JOptionPane.showMessageDialog(null, s);
    }
    System.out.println(dis);
}

}

试试这个我用.equalsIgnoreCase代替==

==调用参考相似度

.equals()检查值的相似性,因此最好使用(s.equals("PWD"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM