Java字符串比较

一定不要使用==运算符检测两个字符串是否相等!这个运算符只能确定两个字符串是否放置在同一个位置上。当然,如果字符串放置在同一个位置上,它们必然相等。但内容相同的多个字符串完全有可能被拷贝放置在不同的位置上

如果虚拟机始终将相同的字符串共享,就可以使用==运算符检测字符串是否相等。但实际上只有字符串常量才是共享的,而通过+号拼接产生或者substring等操作产生的字符串并不是共享的。因此使用==比较字符串是不可靠的,相当于在程序中埋下一颗炸弹,是不是产生令人头疼的BUG。


可以使用equals()方法检测两个字符串是否相等。

stringA.equals(stringB);
"Hello".equals("Hello");

如果想要忽略大小写的区别,可以使用equalsIgnoreCase()方法。