Java中,字符串比较方法equals是常用的判断两个字符串是否相等的方法,但在使用equals方法比较字符串时,若其中一个字符串为null,就会抛出空指针异常,如下所示:
String str1 = "Hello World";
String str2 = null;
if (str1.equals(str2)) { //空指针异常
System.out.println("字符串相等");
} else {
System.out.println("字符串不相等");
}
如何避免空指针异常呢?一般有以下几种方法:
方法一:使用“常量”.equals(变量)方式
这种方式可以避免变量为null而引发的空指针异常,因为常量肯定不为null,所以可以安全使用。示例如下:
String str1 = "Hello World";
String str2 = null;
if ("Hello World".equals(str2)) { //使用常量,避免空指针异常
System.out.println("字符串相等");
} else {
System.out.println("字符串不相等");
}
方法二:使用Objects.equals方法
Java 7引入的Objects.equals方法可以判断两个对象是否相等,避免了空指针异常。如果两个参数都为null,则返回true。示例如下:
String str1 = "Hello World";
String str2 = null;
if (Objects.equals(str1, str2)) { //使用Objects.equals方法,避免空指针异常
System.out.println("字符串相等");
} else {
System.out.println("字符串不相等");
}
综上所述,使用常量.equals(变量)方式或者Objects.equals方法比较字符串可以避免空指针异常。
示例一:使用常量.equals(变量)方式
String str1 = "Hello World";
String str2 = null;
if ("Hello World".equals(str2)) { //使用常量,避免空指针异常
System.out.println("字符串相等");
} else {
System.out.println("字符串不相等");
}
示例二:使用Objects.equals方法
String str1 = "Hello World";
String str2 = null;
if (Objects.equals(str1, str2)) { //使用Objects.equals方法,避免空指针异常
System.out.println("字符串相等");
} else {
System.out.println("字符串不相等");
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java字符串比较方法equals的空指针异常的解决 - Python技术站