为何两段看似相同的Java字符串equals比较结果为false?
问题原因及解决方法
你生成的字符串s和DRUM_R看似相同,实际末尾差了一个空格:
sound + " "得到的是"Bang "(注意字符串末尾带有一个空格)- 调用
repeat(2)后,最终生成的是"Bang Bang "(末尾多了一个空格) - 而
DRUM_R的内容是"Bang Bang",末尾没有空格
因为两个字符串的实际内容不一致,所以equals()方法返回false。
解决办法
可以用两种方式修正:
- 去掉重复后多余的末尾空格:
String s = (sound + " ").repeat(2).trim();
- 用
String.join直接拼接,避免多余空格:
String s = String.join(" ", sound, sound);
内容的提问来源于stack exchange,提问作者Sonya
相关产品推荐
相关产品推荐

