java字符串比较,两个字符串相不相等,直接用==来判断可以吗?或者判断两个字符串不相等,直接用!=?
不能
两个对象进行比较,如果使用==符号,那么比较的是这两个对象的“引用”(类似C语言中指针的概念)。字符串比较,通常情况下比较的是字符串的值而非引用,不同的“引用”是可以对应相同值的,如果这时候用==比较,得出的结论是不相等,但是实际上它们的值是相等的。同理,不相等也是一样,如果是用!=来判断,判断的是字符串的引用,如果两个字符串的值是相同的,它们的引用也不相同,进到判断的时候,就会判断为不相等,其实字符串的值是相等的
所以,比较字符串的值,一般使用equals()进行比较
String a = new String("abc");
String b = new String("abc");
a == b; //false
a.equals(b) // true
if(a!=b){
a和b字符串的值是abc,它们的引用也不同,此时进到这个分支,如果是想判断字符的值,那么就出问题了
}
if(!(a).equals(b)){
这个时候才是根据字符串的值,来判断这两个字符串的值,是否相同
}