可能重复:
如何比较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());
Run Code Online (Sandbox Code Playgroud)
这是我的eclipse控制台上的输出:
12
Y
Run Code Online (Sandbox Code Playgroud)
我的问题是,即使满足if语句中的两个条件,我的程序也永远不会到达上面的最后一行代码(System.out.println(staff.getEmail())).我也没有任何错误.
我有什么想法,我做错了什么?谢谢 :)
你应该使用String.equals()而不是operator ==来表示java中的字符串相等性.
staff.getEmailList() == "Y" 应该转换成 "Y".equals(staff.getEmailList())
原因是operator==检查身份.如果两个操作数是同一个对象(引用同一个对象),则equals()检查是否相等 - 如果两个操作数相等.