📅  最后修改于: 2023-12-03 15:01:33.546000             🧑  作者: Mango
在Java中,比较字符串是否相等的方法是调用equals()
方法。如果返回值为true
,则表示两个字符串相等;如果返回值为false
,则表示两个字符串不相等。
然而,有时候会出现两个字符串看起来一样,但是使用equals()
方法比较却返回false
的情况。这是因为在Java中,字符串是对象,而equals()
方法比较的是对象的引用是否相等。
如果希望比较两个字符串的内容而不是引用,可以使用equals()
方法的变种equalsIgnoreCase()
或者使用compareTo()
方法进行比较。
下面是一个示例代码:
String str1 = "Java";
String str2 = new String("Java");
System.out.println(str1.equals(str2)); // 输出 false
System.out.println(str1.equalsIgnoreCase(str2)); // 输出 true
System.out.println(str1.compareTo(str2)); // 输出 0
在上面的示例中,str1
和str2
的内容是一样的,但是由于str2
使用了new
关键字创建了一个新的对象,所以使用equals()
方法比较会返回false
。而使用equalsIgnoreCase()
方法比较会返回true
,因为该方法比较时不区分大小写。使用compareTo()
方法比较会返回0
,因为两个字符串的内容相同。
总之,在Java中比较字符串时要注意使用equals()
方法或其变种进行比较,不要直接使用==
或!=
运算符进行比较,否则可能会出现意想不到的结果。