Java字符串相等陷阱
前两天在android开发中判断两个字符串相等的时候犯了个小错误,就是在判断两个相同字符串的变量的时候用的是==,但是结果一直返回的是false,折腾了好久,一百度才知道在Java中判断字符串内容相等需要用equals函数。
搜了搜其他的资料,做了一些总结拓展,内容如下:
内容判断和地址判断
在Java中字符串的判断分为内容判断和地址判断
- 内容判断
其实百分之九十九需要的都是内容上的判断相等与否,而且绝大部分错误也是在这~
内容上在用equals函数,即 s1.equals(s2) - 地址判断
地址判断指的是比较这两个字符串是否具有相同的地址;
一般来说,有相同的地址 内容上就肯定相同,
反之,内容上相同地址上不一定相同,这得具体看定义的是不是同一个对象实例
public class HelloWorld {
public static void main(String[] args) {
String a = "123";
String b = "123";
boolean c = (a == b);
System.out.println(c);
String d = new String("123");
String e = new String("123");
boolean f = (d == e);
System.out.println(f);
}
}
运行得到的结果是:
true
false