如何在Java中比较两个字符串 == 和equals() 的区别

Java提供字符串两个选项进行比较。首先是==操作符,第二个是.equals() 为Java字符串函数进行比较。 这个Java教程将帮助您了解Java的==和.equals() 在Java字符串比较的字符串比较和差异性。
    • == 操作符:对象引用检查,如果这两个字符串属于同一对象则匹配相等。
    • 函数 .equals() 检查,这个不管他们属于哪个对象,只比较字符串的值。

比较这两个简单的字符串:

如果这两个字符串是简单的字符串。 Java将考虑他们一个相同的对象。因此,无论(==&equals()方法)将导致为真。
public class StringCompare {

    public static void main(String args[]) {
        String str1 = "hello world";
        String str2 = "hello world";

        System.out.println(str1 == str2);#Return True
        System.out.println(str1.equals(str2));#Return True
    }
}

比较两个字符串对象:

如果这两个字符串是对象的字符串。 Java将考虑他们不同的两个对象。所以==操作符将返回false和equals()函数将返回 true;
public class StringCompare{

    public static void main(String args[]){
        String str1 = new String("hello world");
        String str2 = new String("hello world");

        System.out.println( str1 == str2 );        # Return False
        System.out.println( str1.equals(str2) );   # Return True
    }
}

一个比较简单的字符串和一个对象:

如果是简单的字符串等为对象的字符串。 Java将考虑他们不同的2个对象。所以==操作符将返回false和equals()函数将返回true;
public class StringCompare{

    public static void main(String args[]){
        String str1 = "hello world";
        String str2 = new String("hello world");

        System.out.println( str1 == str2 );        # Return False
        System.out.println( str1.equals(str2) );   # Return True
    }
}

与空字符串比较:

但是,在与空字符串比较的情况下,==将返回false,但.equals()函数将抛出一个异常。为了避免空例外,我们可以使用Objects.equals(str1,str2) 函数像下面的例子。
import java.util.Objects;
public class StringCompare{

    public static void main(String args[]){
        String str1 = null;
        String str2 = new String("hello world");

        System.out.println(str1.equals(str2));        # Throw an Exception
        System.out.println(Objects.equals(str1, str2));   # Return False

    }
}
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏