必须使用equals()方法而不能用==。
例子:
public class Main {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
从表面上看,两个字符串用==和equals()比较都为true,但实际上那只是Java编译器在编译期,会自动把所有相同的字符串当作一个对象放入常量池,自然s1和s2的引用就是相同的。
所以,这种==比较返回true纯属巧合。换一种写法,==比较就会失败:
public class Main {
public static void main(String[] args) {
String s1 = “hello”;
String s2 = “HELLO”.toLowerCase();
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
要忽略大小写比较,使用equalsIgnoreCase()方法。
本文详细解释了在Java中如何正确地比较字符串。通过具体的代码示例对比了使用==操作符和equals()方法的区别,并强调了在字符串比较时推荐使用equals()方法的原因。此外,还介绍了如何实现不区分大小写的字符串比较。

2万+

被折叠的 条评论
为什么被折叠?



