Java中equals(),equalsIgnoreCase()和“==”的区别
equals() 是判断俩个字符串对象的内容是否相同,是区分大小写的;
equalsIgnoreCase() 与equals()用法一致,不过它是不区分大小写的;
而使用"=="
比较的是两个对象在内存中存储的地址是否一样。
例如: String s1 = "abc"; String s2 = new String("abc"); boolean b = (s1 == s2);
则变量 b 的值是 false,
因为 s1 对象对应的地址是"abc"的地址,而 s2 使用 new 关键字申请新的内存,
所以内存地址和 s1 的"abc"的地址不一样,所以获得的值是 false。
public class StringTest { public static void main(String[] args){ String s = new String("Java"); String m = "java"; System.out.println("用 equals() 比较,java 和 Java 结果为"+s.equals(m)); System.out.println("用 equalsIgnoreCase() 比较,java 和 Java 结果为"+s.equalsIgnoreCase(m)); } }
输出:
用 equals() 比较,java 和 Java 结果为false
用 equalsIgnoreCase() 比较,java 和 Java 结果为true