在java中比较字符串:==
我们经常习惯写if(str1==str2),但这种写法可能会在java中引起问题
(example1: (推荐学习: java课程) ) ) ) ) ) ) )。
字符串a=' ABC ';
String b='abc '
那么,a==b返回true。 由于java不能更改字符串的值,因此同一字符串在内存中只存储一部分,因此a和b指向同一对象;
example2:
stringa=newstring(ABC );
stringb=新字符串(ABC );
那么a==b返回false。 在这种情况下,a和b指向不同的对象。
2、用equals法比较的是字符串内容是否相同,
example :
stringa=newstring(ABC );
stringb=新字符串(ABC );
a.equals(b );
返回true。
与String类的equals比较内容相同的想法如下。
1、先判断地址是否相等,相等时返回true
2、比较类型是否相同,不一样,返回false
3、将传递的对象强转换为字符串,比较长度,长度不相等时返回false
4、长度相等,循环比较字符数组元素,如果一个元素比较内容不同,立即返回false
5、两个字符数组循环比较所有元素,没有内容不同的元素,返回true