如何检测Java语言中 字符串 是否相等?
可以使用equals方法检测两个字符串是否相等。对于表达式:
如果字符串s与字符串t相等,则返回true;否则,返回false。需要注意,s与t可以是字符串变量,也可以是字符串字面量。例如,下列表达式是合法的:
要想检测两个字符串是否相等,而不区分大小写,可以使用equalsIgnoreCase方法。
一定不要使用==运算符检测两个字符串是否相等!这个 运算符 只能够确定两个字符串是否放置在同一个位置上。当然,如果字符串放置在同一个位置上,它们必然相等。但是,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。
如果 虚拟机 始终将相同的字符串共享,就可以使用==运算符检测是否相等。但实际上只有 字符串常量 是共享的,而+或substring等操作产生的结果并不是共享的。因此,千万不要使用==运算符测试字符串的相等性,以免在程序中出现糟糕的bug。从表面上看,这种bug很像随机产生的间歇性错误。