为什么这个表达式返回 true
(pass[i]!= null) && (pass[i].getName()!= "nullnull")
<--当我调试它时返回 true,即使 pass[i].getName() == "nullnull" 的值
当我在调试时使用 Eclipse 中的“表达式”窗口检查它时,
我使用输入对话框输入两个名称
String firstName = (String)JOptionPane.showInputDialog("Enter First Name");
String lastName = (String)JOptionPane.showInputDialog("Enter Last Name");
并返回
public String getName()
{
return FirstName + LastName;
}
(pass[i]!= null) && (pass[i].getName()!= "nullnull")
<--returning true when I debug it even though the value of pass[i].getName() == "nullnull"
when I check it using the Expressions window in eclipse while debugging
im using the input dialog box to input two names
String firstName = (String)JOptionPane.showInputDialog("Enter First Name");
String lastName = (String)JOptionPane.showInputDialog("Enter Last Name");
and returning
public String getName()
{
return FirstName + LastName;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您有两个具有相同值的不同字符串,但您通过引用来比较它们。
您需要通过编写
"nullnull".equals(pass[i].getName())
来按值比较它们。即使
getName()
返回null
,相反的顺序也会起作用。You have two different strings with the same value, but you're comparing them by reference.
You need to compare them by value by writing
"nullnull".equals(pass[i].getName())
.The reversed order will work even if
getName()
returnsnull
.尝试使用“.equals”
Try using ".equals"
我想你需要
I think you need
字符串不应与
==
或!=
进行比较。使用
String.equals()
。仅当两个字符串是相同的字符串对象时,
==
才会返回 true,!=
才会返回 false(这与比较它们表示的文本不同)。Strings should not be compared with
==
or!=
.Use
String.equals()
.==
will return true and!=
will return false only when both Strings are the same string object (which is different from comparing the text they represent).老实说,这几乎总是正确的:
在 java 中,
==
运算符比较器对象引用。您需要.equals()
方法。您的代码中有一个空白 - 如果
getName()
返回null
,它将爆炸。To be honest, it's almost always going to be true:
In java the
==
operator comparer object references. you want the.equals()
method.There's a gap in your code - it will explode if
getName()
returnsnull
.