如何在 if 语句 (Java) 中显示 !equals?

How to show !equals in if statement (Java)?

如何在 if 语句中显示它是否不相等(!=,可能是这样)?

例如:

for (int g = 0; g < doglist.size(); g++){
    if(doglist.get(g).equals(name)){
        System.out.println("There is no dog with that name: ");
    }
}

所以在这段代码中,如果列表中的条目不等于名称,我想打印消息。因此,我将不得不使用不同的东西,而不是 equals(name)。这怎么可能?

为清楚起见,您可以使用带有适当括号的 NOT 运算符 !(尽管并非严格要求)。

if (!(condition))

所以在你的情况下....

if(!(doglist.get(g).equals(name)))

你应该写

if (!doglist.get(g).equals(name))

关于您使用!=的想法:对于原始数据类型,是的,使用!=来测试相等性是正确的。 .equals() 用于对象数据类型。但是,对一个对象应用!=会测试操作数的内存位置是否相同,这不是相关信息。 .equals() 是测试对象是否实际上相等的东西。

例如,当比较 ints(原始类型)时,您将使用 !=:

int a = 0, b = 1;
if (a != b) doSomething(); //Calls the method

原始类型根本无法识别 .equals() 方法。但是如果你想比较 Strings(一个对象类型),你会使用 !<object>.equals():

String s1 = "Hello", s2 = "World";
if (!s1.equals(s2)) doSomething(); //Calls the method

如果您对对象使用 !=,它会编译,但可能不会产生所需的输出:

String s1 = "Hello!";
String s2 = "Hello!"; //Make a new object with the same data -- contains "Hello!"
if (s1 != s2) doSomething(); //Will run doSomething(), even though s1.equals(s2)