为什么这个表达式返回 true

发布于 2024-11-15 09:59:12 字数 493 浏览 1 评论 0原文

(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

妞丶爷亲个 2024-11-22 09:59:12

您有两个具有相同值的不同字符串,但您通过引用来比较它们。

您需要通过编写 "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() returns null.

Bonjour°[大白 2024-11-22 09:59:12

尝试使用“.equals”

(pass[i]!= null) && !(pass[i].getName().equals("nullnull"))

Try using ".equals"

(pass[i]!= null) && !(pass[i].getName().equals("nullnull"))
像你 2024-11-22 09:59:12

我想你需要

    (pass[i]!= null) && (!pass[i].getName().equals("nullnull"))

I think you need

    (pass[i]!= null) && (!pass[i].getName().equals("nullnull"))
酷炫老祖宗 2024-11-22 09:59:12

字符串不应与 ==!= 进行比较。
使用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).

青衫负雪 2024-11-22 09:59:12

老实说,这几乎总是正确的:

在 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() returns null.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文