如何在 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()
是测试对象是否实际上相等的东西。
例如,当比较 int
s(原始类型)时,您将使用 !=
:
int a = 0, b = 1;
if (a != b) doSomething(); //Calls the method
原始类型根本无法识别 .equals() 方法。但是如果你想比较 String
s(一个对象类型),你会使用 !<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)
如何在 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()
是测试对象是否实际上相等的东西。
例如,当比较 int
s(原始类型)时,您将使用 !=
:
int a = 0, b = 1;
if (a != b) doSomething(); //Calls the method
原始类型根本无法识别 .equals() 方法。但是如果你想比较 String
s(一个对象类型),你会使用 !<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)