尚学堂知识整理:java字符串比较

String类覆盖了Object类的equals()方法,并提供了自己的实现,equals()方法是根据它们的内容比较两个字符串的相等性。

等于(相等)

例如,可以比较两个字符串的相等性,如下所示:

请点击此处输入图片描述

==操作符总是比较内存中两个对象的引用。str1 == str2和str1 == str3将返回false,因为str1,str2和str3是内存中三个不同String对象的引用。

比较

要根据字符的Unicode值比较两个字符串,请使用compareTo()方法。 它的签名是 -

它返回一个整数,它可以是0(零),正整数或负整数。此方法返回这两个字符的Unicode值之间的差值。

例如,"a".compareTo("b")将返回-1。 a的Unicode值为97,b为98。它返回差值97 - 98,所以它返回的差值是:-1。

以下是字符串比较的示例:

请点击此处输入图片描述

字符串池

Java维护一个所有字符串文字的池。它在字符串池中为每个字符串文字创建一个String对象。当遇到字符串字面量时,它在字符串池中查找具有相同内容的字符串对象。 如果在字符串池中找不到匹配项,它将创建一个新的String对象并将其添加到字符串池中。

如果它在字符串池中找到匹配项,它将使用池中找到的String对象的引用替换字符串字面值。

可以使用intern()方法向字符串池添加一个String对象。如果找到匹配,intern()方法从字符串池返回对象的引用。 否则,它将一个新的String对象添加到字符串池,并返回新对象的引用。

字符串大小写比较

要比较两个字符串是否相等并忽略它们的大小,请使用equalsIgnoreCase()方法。要对两个字符串执行区分大小写的比较,请使用equals()方法。

请点击此处输入图片描述

语言敏感字符串比较

String类根据字符的Unicode值比较字符串。要根据字典顺序比较字符串,请使用java.text.Collator类的compare()方法执行语言敏感(字典顺序)字符串比较。

该方法需要两个字符串作为参数进行比较。 如果两个字符串相同,返回0,如果第一个字符串在第二个字符串之后返回1,如果第一个字符串在第二个字符串之前,返回-1。

以下代码说明了Collator类的使用。

请点击此处输入图片描述

尚学堂java、大数据、前端等资料分享,需要的小伙伴可私信领取。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180321A0JUSU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券