Java中的equals函数和compareTo函数:比较字符串是否相等或大小
在Java编程中,经常需要比较两个字符串是否相等或者更大或更小。为了比较字符串,Java中提供了两种方法:equals函数和compareTo函数。两种方法都可以用来比较字符串是否相等或者更大或更小。但是它们的实现方式略有不同。
一、equals函数
equals函数是Java中String类的一个方法。它用于比较两个字符串是否相等。比较时,equals函数首先比较两个字符串的长度是否相等,如果长度不相等,则认为两个字符串不相等。若长度相等,则依次比较两个字符串的每一个字符是否相等,只有都相等才认为两个字符串相等。
下面是equals函数的示例程序:
public class EqualsDemo {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "hello";
String str3 = new String("Hello");
System.out.println(str1.equals(str2)); //false
System.out.println(str1.equals(str3)); //true
}
}
从上面的示例程序可以看到,equals函数区分大小写,所以"Hello"和"hello"不相等。
二、compareTo函数
compareTo函数也是Java中String类的一个方法。它用于比较两个字符串的大小关系。比较时,compareTo函数首先比较两个字符串从左往右的 个字符,如果它们不相等,则取它们的ASCII码值进行比较。如果 个字符相等,则比较下一个字符,以此类推,直到比较完所有的字符。如果两个字符串的所有字符都相等,则认为它们相等。如果 个字符串比第二个字符串小,则返回一个负整数;如果 个字符串比第二个字符串大,则返回一个正整数;如果它们相等,则返回0。
下面是compareTo函数的示例程序:
public class CompareToDemo {
public static void main(String[] args) {
String str1 = "apple";
String str2 = "banana";
String str3 = "orange";
String str4 = "apple";
System.out.println(str1.compareTo(str2)); //-1
System.out.println(str2.compareTo(str1)); //1
System.out.println(str1.compareTo(str4)); //0
System.out.println(str4.compareTo(str3)); //-14
}
}
从上面的示例程序可以看到,compareTo函数比较大小时,区分大小写。例如"banana"比"apple"大,"orange"比"apple"小。
三、equals函数和compareTo函数的区别
equals函数用于比较两个字符串是否相等,只有两个字符串的所有字符都相等时才认为它们相等。如果两个字符串的长度不相等,即使它们的前面一部分字符完全一样,也不认为它们相等。
compareTo函数用于比较两个字符串的大小,两个字符串的前面一部分相同时,比较它们后面一个字符的大小,以此类推,直到比较完所有的字符。如果两个字符串长度不同,只比较前面相同的那一部分字符。
四、总结
Java中的equals函数和compareTo函数都用于比较两个字符串。equals函数用于检测两个字符串是否完全相等,而compareTo函数用于比较它们的大小关系。在使用时,需要注意两个函数的不同之处。在比较字符串时,应该根据不同的场景选择合适的函数。
