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
}
}