equals(...)和equalsIgnoreCase(...)

Vai*_*pai 15 java

为什么我们有equals()equalsIgnoreCase()作为两种不同的方法,什么时候equals()可以重载一个特殊的ignoreCase参数来提供equalsIgnoreCase()功能?

Pét*_*rök 18

该方法equals()是继承的Object,因此不应更改其签名.equals()通常可以在不实际知道对象的具体类的情况下使用,例如在迭代对象集合时(特别是在Java 5泛型之前).那么你甚至不会看到另一个equals()没有向下倾斜你的对象String.

这是来自Java创建者的设计选择,使得equals()对所有对象使用完全相同的方式成语.

此外,IMO

if (string1.equalsIgnoreCase(string2)) ...
Run Code Online (Sandbox Code Playgroud)

更具可读性,因此不易出错

if (string1.equals(string2, true)) ...
Run Code Online (Sandbox Code Playgroud)

当然,在您自己的课程中,您可以自由添加equals()不同的签名(在标准之上equals(),即).


Ven*_*kat 5

equalIgnoreCase()用于忽略我们的Case敏感String.但这equals()只是回归true,而同样的情况string

当然,

String value="java";
if(value.equals("JAva")
{
    System.out.println("Return True");
}
else
{
    System.out.println("Return False");
}
Run Code Online (Sandbox Code Playgroud)

答:退货 False

但另一个是,

if(value.equalIgnoreCase("JAva")
{
    System.out.println("Return True");
}
else
{
    System.out.println("Return False");
}
Run Code Online (Sandbox Code Playgroud)

答:退货 True

  • 在发布答案之前,请阅读并理解问题. (4认同)