Java中怎么比较两个字符串是否相等?

Python011

Java中怎么比较两个字符串是否相等?,第1张

JAVA比较两个字符串是否相等可以用equals方法或者是“==”。

equals 方法常常用来检测两个对象是否相等,即两个对象的内容是否相等,如果只是比较对象的内容,而不比较对象来源和功能类型时,常用此方法。

“==”常用于用于比较引用和比较基本数据类型时是否具有不同的功能,比较基本数据类型,如果两个值相同,则结果为true而在比较引用时,如果引用指向内存中的同一对象,结果为true。

扩展资料

equals 方法的特点:

1、自反性:x.equals(x)返回true;

2、对称性:若x.equals(y)为true,则y.equals(x)亦为true;

3、传递性:若x.equals(y)为true且y.equals(z)也为true,则x.equals(z)亦为true;

4、一致性:x.equals(y)的第一次调用为true,那么x.equals(y)的第二次、第三次、第n次调用也均为true,前提条件是没有修改x也没有修改y;

5、对于非空引用x,x.equals(null)永远返回为false。

参考资料来源:百度百科——equals

1. 在java中,不能用“==”和“!=”来判断两个字符串是否相等。因为String是引用类型,而不是基本数据类型。

故它们的比较是使用地址和值

来比较,因为它们是不同的对象,有不同的地址。故str1==str2永远是false,而str1!=str2永远都是true。

2. Java中必须使用string1.equals(string2)来进行判断

string s1="Hello"

string s2="Hello"

则(s1==s2)=true

因为他们指向的同一个对象。

String s1=new String("Hello")

String s2=new String("Hello")

则(s1==s2)=false

如果把其他变量的值赋给s1和s2,即使内容相同,

由于不是指向同一个对象,也会返回false。

所以建议使用equals(),因为equals比较的才是真正的内容

3.案例

String string1=new String( "aaa" )

String string2=new String( "aaa" )

这两个字符串当然应该是相等的。

如果用表达式string1==string2,则该表达式的值为false

如果用表达式string1.equals(string2),则该表达式的值为true

字符串比较 使用.equals()\x0d\x0aString s1 = "aaa"//输入字符串\x0d\x0aString s2 = "bbb"//固定字符串\x0d\x0aSystem.out.println(s1.equals(s2))\x0d\x0a\x0d\x0a字符串比较不要使用 ==\x0d\x0a因为使用== 比较的两个字符串的引用是否相等 \x0d\x0a你可以理解为比较两个字符串在内存中的地址是否相等。