Java String equals()方法

培训教学 潘老师 8个月前 (09-01) 193 ℃ (0) 扫码查看

学习如何以区分大小写的方式比较两个String对象的内容,可以使用String.equals() API。对于不区分大小写的比较,我们可以使用equalsIgnoreCase()方法。

永远不要使用’==’运算符来检查字符串的相等性。它验证对象引用,而不是内容,这在大多数情况下是不可取的。

1.String.equals() API

在Java中,String.equals()方法比较一个字符串与作为方法参数传递的对象。只有在以下情况下才返回true:

  • 参数对象是String类型。
  • 参数对象不为null。
  • 表示与当前字符串相同的字符序列。
String str1 = "alex";
String str2 = "alex";
String str3 = "alexa";
Assertions.assertTrue(str1.equals(str2));
Assertions.assertFalse(str1.equals(str3));

2. 抛出NullPointerException

equals()方法不支持null参数,并会抛出NullPointerException异常。

String str1 = "alex";
Assertions.assertThrows(NullPointerException.class, () -> {
  str1.contains(null);
});

3.仅支持区分大小写的比较

以下Java程序演示了equals()方法以区分大小写的方式进行内容比较。如果更改大小写,字符串被视为不同。

String str1 = "alex";
Assertions.assertTrue(str1.equals("alex"));
Assertions.assertFalse(str1.equals("Alex"));  

4.’==’运算符和equals()方法的区别

如前所述,’==’运算符检查相同的对象引用,而不检查字符串内容。而equals()方法严格检查字符串内容。

在以下Java程序中,我们创建了两个String对象。首先,我们使用’==’运算符比较这两个对象,结果为false,因为它们在内存中是不同的对象。

然后,我们使用equals()方法检查字符串的内容,它返回true,因为虽然对象不同,但它们的内容相同。

String strObj1 = new String("test");
String strObj2 = new String("test");
Assertions.assertFalse(strObj1 == strObj2);
Assertions.assertTrue(strObj2.equals(strObj2));

为了更深入地理解’==’运算符和equals()方法的区别,请参考Java中 == 和 equals 的区别这篇文章。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/8546.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】