首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.equals ("0")和.equals('0')的差异

.equals ("0")和.equals('0')的差异
EN

Stack Overflow用户
提问于 2014-08-16 05:30:53
回答 3查看 4.1K关注 0票数 0

上下文:

使用相等于双引号和单引号的字符串比较

我尝试检查我的一个业务对象的字段"parentId“(String)的值,如下所示:

代码语言:javascript
复制
System.out.println("Status 1 = "+myBusObj.getParentId().equals("0"));


System.out.println("Status 2 = "+myBusObj.getParentId().equals('0'));

我得到以下输出:

代码语言:javascript
复制
Status 1 = true //where parentId was of value 0 (String)

Status 2 = false //where parentId was of value 0 (String)

问题:为什么Status 1 is trueStatus 2 is false

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-16 05:33:44

区别在于,在第一种情况下,您比较的是一个字符String,而在第二种情况下,您比较的是一个Character对象。

字符串和字符在使用equals(Object)时是不可比较的;因此在第二种情况下是false

(这里有点微妙.在这个'0'中,是一个char文本,它被自动装箱,为您提供Character对象。在Java 5将自动装箱添加到语言之前,.equals('0')调用将是编译错误。这是一个例子,其中自动装箱实际上是一个障碍.)

票数 5
EN

Stack Overflow用户

发布于 2014-08-16 05:37:10

状态1:您尝试将string对象与string对象(“String”String对象)进行比较,这样结果将为true。

状态2:尝试将字符串对象与字符对象(“字符”字符对象)进行比较,结果将为假。

谢谢。

票数 1
EN

Stack Overflow用户

发布于 2014-08-17 11:33:04

双引号包括字符串和单引号,包含字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25337233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档