字符串和多个char类型的字符相加比较问题

错误案例

【现象描述】表面看上去内容一样的字符串和单个字符拼接比对,结果永远为false

【错误代码】 "34".equals('3' + '4')


错误分析

当且仅当+操作符的操作数中至少有一个是String类型时,才会执行字符串连接操作;否则,执行加法。

如:在本例中'3' + '4'得到的结果是整型数值103,而不是字符串"34"。

如果是字符'a' + 'b'得到的结果是a,b字符的ASCII码相加的整型数值。

根据这样的情况,可以有几种选择:

1、 预置一个空字符串("" + 'a' + 'A')

2、 将第一个数值用String.valueOf()显示地转换成一个字符串(String.valueOf('a') + 'A')

3、 使用一个字符串缓冲区(sb.append('a');sb.append('A'););

正确用法

"ab".equals("" + '3' + '4')


发布了26 篇原创文章 · 获赞 2 · 访问量 15万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章