Java由char数组得到String与值相同的String比较结果不相等

本文探讨了使用Java的char数组创建String对象时遇到的问题:即使两个String看起来相同,equals方法也可能返回false。文章通过示例解释了原因,并介绍了如何通过使用trim()方法来解决这一问题。此外,还分享了使用debug工具定位此类问题的有效方法。
        最近使用java做作业,使用char数组去读取字符转化成字符串,然后与另一值相同的字符串使用equals比较,输出发现值一样,但是equals的比较结果却为false。

        最后通过debug发现String对象的内部也是一个char数组,通过char数组创建String时,如果不指定start和count,会将使用整个数组,即连同后面的空字符,输出结果不会受到影响。另外,String.trim()就是删除String 的char数组 前后的空白字符和空字符,使用trim()后再比较就得到值完全一样的String了。

        我之前的学习中,一直使用输出语句来找错误,经常要在很多地方写输出语句,非常累。所以无论程序是简单还是复杂,出错时利用debug去调试差错都是非常有用而且效率的,有时还会有新收获!

附上测试例子:


debug可以查看对象和变量的内部结构


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值