Java中如何比较两个字符串
时间:2019-05-19 01:25:43 来源:igfitidea点击:
问题-Java编程语言中如何比较两个字符串?
Java为字符串比较提供了两个选项。
第一个是==
操作符,第二个是用于Java字符串比较的.equals()
函数。
本Java教程将理解Java下的字符串比较,以及用于Java中字符串比较的==和.equals()之间的区别。
操作符==检查对象引用,如果两个字符串属于同一对象,则匹配为真。
Function .equals()检查字符串的值,它们属于哪个对象无关紧要。
比较两个简单的字符串
如果两个字符串都是简单字符串。
Java将把它们看作相同的对象。
因此(== 和 equals())都将为true。
public class StringCompare{ public static void main(String args[]){ String str1 = "hello world"; String str2 = "hello world"; System.out.println( str1 == str2 ); // True System.out.println( str1.equals(str2) ); // True } }
比较两个字符串(String)对象
如果两个字符串都是对象字符串。
Java将把它们看作不同的-2对象。
所以==操作符将返回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 ); // False System.out.println( str1.equals(str2) ); // 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 ); // False System.out.println( str1.equals(str2) ); // True } }
与空字符串比较
但在与空字符串比较时,==将返回false,但.equals()函数将抛出异常。
为了避免空null异常( null exception),我们可以使用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)); // 抛出异常 System.out.println(Objects.equals(str1, str2)); // False } }