错误案例
【现象描述】表面看上去内容一样的字符串和单个字符拼接比对,结果永远为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')