Possible Duplicate:
How do I compare strings in Java?
我有这个代码:
System.out.println(staff.getEmail().length());
System.out.println(staff.getEmailList());
if ((staff.getEmail().length() > 0) && (staff.getEmailList() == "Y")) {
System.out.println(staff.getEmail());
这是我的 Eclipse 控制台上的输出:
12
Y
我的问题是,即使 if 语句中的两个条件都满足,我的程序也永远无法到达上面的最后一行代码 (System.out.println(staff.getEmail()))。我也没有任何错误。
有什么想法我可能做错了什么吗?谢谢:)
最佳答案
您应该使用String.equals()
而不是 Java 中用于字符串相等的运算符 ==。
staff.getEmailList() == "Y"
应转换为 "Y".equals(staff.getEmailList())
原因是operator==
检查身份。如果两个操作数是同一个对象(引用同一个对象),则 equals()
检查相等 - 如果两个操作数彼此相等。
关于java - Java 中奇怪的 if-then 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13860496/