比较字符串比较常用的两个方法是运算符“=”和String的equals方法。
使用“=”比较两个字符串,是比较两个对象的的“地址”是否一致,本质就是判断两个变量是否指向同一个对象,如果是则返回true,否则返回的是false。而String类的equals方法则是比较两个字符串的内容是否一致,返回值也是一个布尔类型。
看下面的代码:
public class TestString{
public static void main(String[] args){
String str1 = "张三";
String str2 = "张三";
System.out.println(str1 == str2); //返回true
System.out.println(str1.equals(str2)); //返回true
String str3 = new String("李四");
String str4 = new String("李四");
System.out.println(str3 == str4); //返回false
System.out.println(str3.equals(str4)); //返回true
}
}
结果输出:
从上面的代码也可以看得出来,通过String str = " XXX"方式和通过String str = new String("XXX")方式创建的字符串在计算机堆栈空间里的存储是不一样的
现在我也是一个小白,对堆栈空间的理解现在也不是很到位,所以在这里也不好说其中的“玄机”。今天主要是想分享学习到的两种常见的字符串比较方法。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!