| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
跟大牛学C++学算法数据结构
共有 321 人关注过本帖
标题:新人问一个关于字符串是否相等的问题。谢谢!
只看楼主 加入收藏
学习丶123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-1-3
结帖率:0
  已结贴   问题点数:20  回复次数:4   
新人问一个关于字符串是否相等的问题。谢谢!
            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"字符串。
2019-01-08 14:16
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:114
帖 子:1819
专家分:7935
注 册:2015-3-19
  得分:10 
一般是用equals判等

知命以下无敌
2019-01-09 01:10
学习丶123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-1-3
  得分:0 
回复 2楼 林月儿
谢谢回复,为什么a==b,难道这里输入的两个"byes",程序默认是同一个吗?
2019-01-09 09:40
疯狂的小a
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:32
帖 子:408
专家分:1797
注 册:2018-2-6
  得分:10 
a==b是因为对字符串==判断的地址值,而你给a和b赋值的时候,都是从常量池取的同一个"byes",所以他们地址值相同

假如人生没有梦想,和咸鱼有什么区别!
2019-01-09 09:52
学习丶123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-1-3
  得分:0 
回复 4楼 疯狂的小a
似乎明白了,谢谢
2019-01-09 10:14







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058251 second(s), 9 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved