📅  最后修改于: 2023-12-03 14:42:42.514000             🧑  作者: Mango
Java中字符串的比较可以使用以下几种方法:
我们将逐一介绍这些方法。
== 操作符可以用来比较两个字符串对象是否相等。
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
在这个例子中,我们定义了三个字符串对象。str1 和 str2 都是使用字面量创建的,并且它们的值相同。str3 则是使用 new 关键字创建的,它的值也是 "hello"。但是,由于 str3 是创建了一个新的字符串对象,它与 str1 和 str2 不相等,所以 str1 == str3 返回 false。
equals() 方法可以用来比较两个字符串对象的内容是否相等。
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true
在这个例子中,我们使用 equals() 方法比较了 str1 和 str2 是否相等,结果返回了 true。然后,我们比较了 str1 和 str3 是否相等,结果同样为 true。这是因为 equals() 方法比较的是字符串对象的内容,而不是对象的引用。
compareTo() 方法可以用来比较两个字符串对象的大小。
String str1 = "abc";
String str2 = "abd";
String str3 = "abc";
System.out.println(str1.compareTo(str2)); // -1
System.out.println(str1.compareTo(str3)); // 0
System.out.println(str2.compareTo(str1)); // 1
在这个例子中,我们使用 compareTo() 方法比较了 str1 和 str2 的大小。由于 str1 的第三个字符是 'c',str2 的第三个字符是 'd',所以 str1 小于 str2,结果返回了 -1。然后,我们比较了 str1 和 str3 的大小,它们的内容相同,结果返回了 0。最后,我们比较了 str2 和 str1 的大小,因为 str2 大于 str1,所以结果返回了 1。
equalsIgnoreCase() 方法可以用来比较两个字符串对象的内容是否相等,并且忽略大小写。
String str1 = "Hello";
String str2 = "hello";
System.out.println(str1.equalsIgnoreCase(str2)); // true
在这个例子中,我们使用 equalsIgnoreCase() 方法比较了 str1 和 str2 是否相等,由于它们的内容相同并且忽略大小写,所以结果返回了 true。
compare() 方法是一个静态方法,它可以用来比较两个字符串的大小,并且可以指定大小写敏感或者不敏感。
String str1 = "abc";
String str2 = "abd";
String str3 = "abc";
System.out.println(String.compare(str1, str2)); // -1
System.out.println(String.compare(str1, str3)); // 0
System.out.println(String.compare(str2, str1)); // 1
System.out.println(String.compare(str1, str2, true)); // -1
System.out.println(String.compare(str1, str2, false)); // 1
在这个例子中,我们使用 compare() 方法比较了 str1 和 str2 的大小。由于 str1 的第三个字符是 'c',str2 的第三个字符是 'd',所以 str1 小于 str2,结果返回了 -1。然后,我们比较了 str1 和 str3 的大小,它们的内容相同,结果返回了 0。最后,我们比较了 str2 和 str1 的大小,因为 str2 大于 str1,所以结果返回了 1。然后,我们使用 compare() 方法比较了 str1 和 str2 是否相等,由于它们的内容相同,所以结果返回了 -1。最后,我们再次使用 compare() 方法比较了 str1 和 str2 是否相等,但是这一次我们将大小写不敏感,所以结果返回了 1。
Java提供了很多种方法来比较字符串对象,我们需要根据不同的需求选择不同的方法。当比较字符串对象是否相等时,我们应该使用 equals() 方法,而不是 == 操作符;当比较字符串的内容大小时,我们应该使用 compareTo() 方法。如果需要比较字符串时忽略大小写,我们可以使用 equalsIgnoreCase() 方法或者 compare() 方法。