字符串和多个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')

你可能感兴趣的:(字符串和多个char类型的字符相加比较问题)