注册 登录
编程论坛 JAVA论坛

新人问一个关于字符串是否相等的问题。谢谢!

学习丶123 发布于 2019-01-08 14:16, 1804 次点击
            Scanner in = new Scanner(System.in);
            String d = in.next();
            String a = "byes";
            String b = "byes";
            String c = new String("byes");
            System.out.println(a==b);
            System.out.println(a==c);
            System.out.println(a=="byes");
            System.out.println(a.equals(b));
            System.out.println(a==d);

为什么 a==b ,而a!=c;a!=d;d得到的也是"byes"字符串。
4 回复
#2
林月儿2019-01-09 01:10
一般是用equals判等
#3
学习丶1232019-01-09 09:40
回复 2楼 林月儿
谢谢回复,为什么a==b,难道这里输入的两个"byes",程序默认是同一个吗?
#4
疯狂的小a2019-01-09 09:52
a==b是因为对字符串==判断的地址值,而你给a和b赋值的时候,都是从常量池取的同一个"byes",所以他们地址值相同
#5
学习丶1232019-01-09 10:14
回复 4楼 疯狂的小a
似乎明白了,谢谢
1