java 判断字符串是不是相等
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 判断字符串是不是相等相关的知识,希望对你有一定的参考价值。
java中判断字符串是否相等有两种方法:1、用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc",那么a==b将返回true。这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象;再比如:String a=new String("abc"); String b=new String("abc");那么a==b将返回false,因为a和b指向不同的对象。2、用equals方法,该方法比较的是字符串的内容是否相同,比如:String a=new String("abc"); String b=new String("abc"); a.equals(b);将返回true。所以通常情况下,为了避免出现上述问题,判断字符串是否相等使用equals方法。 参考技术A ==咯,值相等===咯,值相等,属性相同咯 参考技术B 一般使用双等来判断(==),如果还需要类型相同那么就用三等(===)。
说一下这两个的区别:
== equality 等同,=== identity 恒等。
==, 两边值类型不同的时候,要先进行类型转换,再比较。
==,不做类型转换,类型不同的一定不等。
下面分别说明:
先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等]。
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。
再说 ==,根据以下规则:
1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、任何其他组合,都[不相等]。
Scala判断字符串是不是相等
参考技术A 在Scala中可以通过 == 判断字符串实例是否相等,eg.在此,特别感谢 Z尽际 的提醒,增加了val s4 = Array("H", "e", "l", "l", "o").mkString("") 这个例子,s1,s2,s3编译之后会变成同一个对象的引用,比较字符串相等没有意义,增加s4更能说明上面的结论;
== 在AnyRef中是一个函数,其定义如下:
其中 if (this eq null) that.asInstanceOf[AnyRef] eq null 会判断当前String对象是否为空,所以null也可以使用 == 来比较,并且两个null字符串比较会得到true的结果也不会抛出 NullPointerException ; eg.
但是,如果使用null字符串做一些函数操作,则会抛出 NullPointerException ,eg.
如果要忽略大小写比较字符串,可以使用java的equalsIgnoreCase方法,eg.
<font color=#0099ff size=7 face="黑体">\033[1q Scala不推荐使用null,可以使用Option代替 </font>
<font color=red>Markdwon测试</font>
"\033[34mdanran\033[0m" danran蓝色显示
以上是关于java 判断字符串是不是相等的主要内容,如果未能解决你的问题,请参考以下文章