android的开发中我发现使用bundle.getString获取到来自另一个activity的Intent中用putExtra传来的一个字串,比如传入一个“ABC”。
我设一个变量s来接收getString返回的字符串,在监视器里看到这个变量s确实被赋值成了"ABC",但是问题是,当我使用if(s=="ABC")这样的语句时,却判断为不等,这是为什么啊?
android的开发中我发现使用bundle.getString的诡异问题
答案:2 悬赏:0 手机版
解决时间 2021-03-08 00:31
- 提问者网友:缘字诀
- 2021-03-06 23:54
最佳答案
- 五星知识达人网友:西风乍起
- 2021-03-07 00:14
在C++中,由于经常重载==运算符,所以可以这样使用if(s=="ABC"),判断字符串相等,重载,比较的是两个指针指向的内容,不重载,比较的是两个指针值。
在JAVA中,s是一个String对象引用,"ABC"是另外一个String对象,用==,只是比较两个对象的引用,很明显,两个引用指向的是两个不同的对象(不同内存)。
判断JAVA中两个对象内容相等,需要用if(s.equals("ABC"))
在JAVA中,s是一个String对象引用,"ABC"是另外一个String对象,用==,只是比较两个对象的引用,很明显,两个引用指向的是两个不同的对象(不同内存)。
判断JAVA中两个对象内容相等,需要用if(s.equals("ABC"))
全部回答
- 1楼网友:雾月
- 2021-03-07 00:19
你好!
s和”ABC“是两个不同的字符串对象,判断肯定不等。
你可以使用if(s.equals("ABC")来判断内容是否相等。
-----------------------------------------------------------------------------------------------------
安卓精英团为你解答
安卓精英团欢迎各位精英加入
我的回答你还满意吗~~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯