int compareTo(String anotherString)
- 用于比较调用对象和参数对象的字符串大小关系并返回。
- 使用当前字符串中第一个字符起的每个字符减去参数字符串中对应位置的字符
若第一个字符不相等则可以代表字符串大小关系,若相等则使用下一个字符继续比较
- 若存在的字符都相同时,则大小取决于长度。
int compareToIgnoreCase(String str)
- 用于比较调用对象和参数对象的字符串大小关系并返回。
- 不考虑大小写,也就是'A'和'a'在该方法中认为是相等的关系。
如:
"abc" 和 "bcd"比较大小:由于第一个字符'a'小于'b',因此字符串"bcd"比较大;
"abc" 和 "abd"比较大小:由于前两个字符相等,第三个字符'c'小于'd',因此"abd"大;
"abc" 和 "abcd"比较大小:由于前面字符相等,则大小取决于字符创长度,因此"abcd"大
public class TestStringCompareTo {
public static void main(String[] args) {
String s1 = new String("abc");
//调用compareTo()方法实现字符串大小的比较
System.out.println(s1.compareTo("bcd")); //负数 -1 'a' - 'b'
System.out.println(s1.compareTo("abe")); //负数 -2 'c' - 'e'
System.out.println(s1.compareTo("abcdef"));//负数 -3 3 - 6
System.out.println("-----------------------------");
//对应位置的字符串做减法,若所有字符相同则用长度做减法
System.out.println(s1.compareTo("aaa")); //正数 1 'b'-'a'
System.out.println(s1.compareTo("aba")); //正数 2 'c'-'a'
System.out.println(s1.compareTo("")); //正数 3 3 - 0
System.out.println("-----------------------------");
//字符大小写不同时,比较的规则 ‘a’ 97 'A' 65 '0' 48 空格 32 '\n' 10
//String s1 = new String("abc");
System.out.println(s1.compareTo("Abc")); //正数 32
System.out.println(s1.compareTo("abC")); //正数 32
System.out.println(s1.compareToIgnoreCase("Abc"));//0
System.out.println(s1.compareToIgnoreCase("abC"));//0
}
}