欢迎访问宙启技术站
智能推送

Java函数:如何判断两个字符串是否相等?

发布时间:2023-06-20 00:41:08

在Java中,判断两个字符串是否相等,可以通过多种方法实现。在本文中,我们将介绍三种最常见的方法。

方法一:使用“==”运算符

在Java中,可以使用“==”运算符来比较两个字符串是否相等。如果两个字符串在内存中引用的是相同的对象,则它们相等;否则它们不相等。代码如下:

String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

if (str1 == str2) {
    System.out.println("str1 equals to str2");
}

if (str1 == str3) {
    System.out.println("str1 equals to str3");
} else {
    System.out.println("str1 not equals to str3");
}

在上面的代码中,我们创建了三个字符串对象,“Hello”被存储在常量池中。str1和str2变量引用的是同一个对象,因此它们相等;str1和str3变量引用的是不同的对象,因此它们不相等。

方法二:使用equals()方法

在Java中,String类提供了equals()方法来判断两个字符串是否相等。该方法在比较两个字符串时会比较它们的值而不是内存地址。代码如下:

String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

if (str1.equals(str2)) {
    System.out.println("str1 equals to str2");
}

if (str1.equals(str3)) {
    System.out.println("str1 equals to str3");
} else {
    System.out.println("str1 not equals to str3");
}

在上面的代码中,equals()方法会比较str1和str2的值,它们相等;比较str1和str3的值,它们也相等。

需要注意的是,如果使用equals()方法比较两个字符串的时候,其中一个字符串为null时会出现空指针异常。为避免这种情况,建议写出下面的代码:

if (str1 != null && str1.equals(str2)) {
    System.out.println("str1 equals to str2");
}

方法三:使用compareTo()方法

在Java中,String类还提供了compareTo()方法来比较两个字符串的大小关系。如果compareTo()方法的返回值为0,则表示两个字符串相等。代码如下:

String str1 = "Hello";
String str2 = "Hello";
String str3 = "China";

if (str1.compareTo(str2) == 0) {
    System.out.println("str1 equals to str2");
}

if (str1.compareTo(str3) == 0) {
    System.out.println("str1 equals to str3");
} else {
    System.out.println("str1 not equals to str3");
}

在上面的代码中,我们使用compareTo()方法比较了三个字符串。比较str1和str2,它们相等;比较str1和str3,它们不相等。

需要注意的是,compareTo()方法还可以返回一个整数,其值为负数、0或正数。负数表示当前字符串小于目标字符串;0表示当前字符串等于目标字符串;正数表示当前字符串大于目标字符串。因此,在使用compareTo()方法比较两个字符串之前,需要明确比较的顺序。