Java String equals() 字符串比较相等示例代码

Java String equals()方法用于比较字符串与入参对象是否相等。

Java String equals() 方法

Java 中,String equals() 方法如下定义:

public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = value.length;
        if (n == anotherString.value.length) {
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = 0;
            while (n-- != 0) {
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}
  • 字符串类覆盖Object类中的equals()方法,判断相等区分大小写。
  • 使用equals()方法来检查字符串内容的相等性。
  • 不要使用’‘运算符,它检查对象引用,这在大多数情况下是不可取的。
  • 允许将“null”传递给方法,它将返回false。
  • 使用equalsIgnoreCase()方法以不区分大小写的方式比较字符串。

Java String equals() 方法示例

用于比较两个字符串是否相等(区分大小写)的 Java 程序。

public static void main(String[] args) {
    String world1 = "hello";
    String world2 = "hello";

    System.out.println(world1.equals(world2)); // true

    String world3 = "hi";
    System.out.println(world1.equals(world3)); // false

    System.out.println(world1.equals(null)); // false

    System.out.println(world1.equals("Hello")); // false
}

Java String equalsIgnoreCase() 示例

用于检查两个字符串是否相等(不区分大小写)的 Java 程序。请注意equals()equalsIgnoreCase()方法的行为方式相同,只是后者不区分大小写。

public static void main(String[] args) {
    String world1 = "hello";

    System.out.println(world1.equalsIgnoreCase("Hello")); // true
    System.out.println(world1.compareToIgnoreCase("Hello")); // 0
    System.out.println(world1.equalsIgnoreCase(null)); // false
}

Java 中 和 equals 的区别

‘运算符检查相同的对象引用,它不检查字符串内容,而equals()方法检查字符串内容。

    public static void main(String[] args) {
        String world1 = "hello";
        String world2 = "hello";

        System.out.println(world1 == world2); //true
        System.out.println(world1.equals(world2)); //true

        String world3 = new String("hello");
        System.out.println(world1== world3); //false
        System.out.println(world1.equals(world3)); //true
    }

world1 和 world2 在Java中是同一个对象,是因为 JVM 的存储方式。

JVM 在存放 String 字符串的时候,有一块区域被称之为 常量池。如果两个字符串的字面量相等,又是以普通方式声明,则会将它们指向同一块内存区域。于是 world1 和 world2 就是 ==

但是,要是程序声明了 new String("hello"),则会开辟新的空间存贮该字符串,于是 world1 和 world3 就不能是 ==,他们的字面量是相同的,equals 方法是 true。

转载请注明出处:码谱记录 » Java String equals() 字符串比较相等示例代码
标签: