一尘不染

在java中如何比较字符串?

java

在java中如何比较字符串,使用==还是equals


阅读 721

收藏
2020-01-07

共1个答案

一尘不染

== 测试引用是否相等(它们是否是同一对象)。

.equals() 测试值是否相等(在逻辑上是否为“相等”)。

String.contentEquals() 将的内容String与任何内容进行比较CharSequence(从Java 1.5开始可用)。

因此,如果要测试两个字符串是否具有相同的值,则可能要使用Objects.equals()。

// 值相等
new String("test").equals("test") // --> true 

// 不是同一个对象
new String("test") == "test" // --> false 

// 不是同一个对象
new String("test") == new String("test") // --> false 

// 同一个对象
"test" == "test" // --> true 

// 同一个对象
"test" == "te" + "st" // --> true

// Objects.equals()比较内容
Objects.equals("test", new String("test")) // --> true
Objects.equals(null, "test") // --> false
Objects.equals(null, null) // --> true

我们使用Objects.equals()的时候多,很少使用==。

2020-01-08