栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

StringBuilder与String比较结果错误

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

StringBuilder与String比较结果错误

StringBuilder与String比较时,如果直接使用“==”将报错,提示“==”无法应用在StringBuilder与String之间。如果使用equals,如下面所示:

StringBuilder s = new StringBuilder();
s.append("ab");
if(s.equals("ab"))
{
    System.out.println("true");
}else{
    System.out.println("false");
}

将会输出“false”,观察StringBuilder中的equals方法源码可以看到:

public boolean equals(Object obj) {
        return (this == obj);
    }

这个方法直接比较的是地址指针,s是通过new直接创建在堆中,而“ab”创建在字符串常量池中,其地址不一样,所以返回false。

因此比较StringBuilder与String可以将StringBuilder通过.toString()方法转换为String后进行,String中的equals方法是执行逐字符比较后返回结果。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/591606.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号