Java中如何判断两个String是否相等

如题所述

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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-23
1,判断相等的两个方法:
(1)== :用于基本数据类型的判断(基本数据类型包括: byte,short,int,long,double,float,boolean)
(2)A .equals(B):用于引用类型的判断
2,例如:
Student stu1=new Student("zhangsan");
Student stu2=new Student("zhangsan");
stu1和stu2是Student类下的两个不同的对象,内存区域不相同,因此判断时
如果用stu1==stu2 结果为false
如果用stu1.equals(stu2) 结果为true
第2个回答  2015-03-24

Object 有个方法叫 equals(obj) 就是用来比较两个对象是否相等的

返回值是个boolean类型

String就重写了这个方法,用来比较两个字符串是否相等

例如 String s = "aa";

String s2 = "aaa";

boolean btn = s.equals(s2);

String有非常多的方法,请查看JDK的API

第3个回答  2017-08-30
通过equals进行判断字符串是否不相等.

String中equals()方法覆盖了父类的Object方法,比较规则为:如果两个对象的类型一致,并且内容一致,则返回true,否则返回false.

例如:

String a = "abc";
String b = "abc";
if(a.equals(b)){//通过equals比较a,b是否相等
//相等
}else{
//不想等
}
第4个回答  2015-03-24

用Equals判断即可。示例:

package a;

public class TestReturn {
public static void main(String[] args) {
// TODO Auto-generated method stub
String a="a";
String b="b";
String c="a";
System.out.println(a.equals(b));
System.out.println(a.equals(c));

}

}

将会输出:false true