迄今为止,我在程序中一直使用==
运算符来比较所有的字符串。然而,我遇到了一个错误,将其中一个字符串改为使用equals()
后,问题得到了解决。
==
有什么不好?它应该在什么时候使用,在什么情况下不应该使用?它们之间有什么区别?
迄今为止,我在程序中一直使用==
运算符来比较所有的字符串。然而,我遇到了一个错误,将其中一个字符串改为使用equals()
后,问题得到了解决。
==
有什么不好?它应该在什么时候使用,在什么情况下不应该使用?它们之间有什么区别?
答案:完全没有问题!只是它不会把数字相加,尽管你在测试2*2时可能没有注意到这一点。*是不好吗?
是的,使用 == 是不好的。如果你使用 == 比较对象,它会比较这些对象是否相同,而不是相等。
对于字符串来说,你很幸运,因为大多数情况下,相等的字符串实际上引用的是同一个对象,但这并非总是如此。
请参阅此帖子Java中如何比较字符串?以获取示例。
==操作符用于检查运算符左右操作数的引用是否相等,而equals方法用于检查两个对象的值是否相等。
在处理字符串时,建议尽可能使用equals方法,因为字符串拥有对象池,因此如果使用==操作符比较两个字符串,即使内容相同,也会由于引用不同而返回false。但是equal方法会返回true。