安卓 字符串一样 但是长度不一样 equals返回false

本文讲述了在Android开发中遇到的一个问题,即两个看似相同的字符串由于包含特殊字符,导致equals方法返回false。通过对比字符串长度并使用getBytes()转码,找出特殊字符(表现为问号)并替换为空格,从而解决问题。
摘要由CSDN通过智能技术生成

      最近项目需要一个二维码扫描的功能,可是有一个二维码在Android上扫描出现了问题,IOS却是好的,我拿到IOS的返回结果,和我的对比结果如下

看上去相同但是长度却不一样,让我有点怀疑人生;经过一番折腾终于找到了原因,是返回数据里面有特殊字符,一般的工具打印不出来。

 

    解决方法:

try {
    content=new String(content.trim().getBytes("iso-8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

使用getBytes()转码将字符显示出来

最终特殊字符被转成问号(?),我们只要将问号替换成空格即可  

content=content.replace("?","");

最终代码

总结:

发现看上去一样的字符串,但是用equals比较却不相同时,打印一下他们的长度,如果长度不一样就说明有特殊字符。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值