Java String的compareTo返回结果

Java String的compareTo返回结果

目录

    • Java String的compareTo返回结果
      • 目录
      • 方法说明
      • 代码
      • 结果
      • 结论

方法说明

在使用compareTo方法进行字符串比较时,比较的是字符的Unicode值,返回的类型为整型。在实际进行比较时,会出现以下的结果:

compareTo 结果说明:

字符串比较情况 返回结果
长度相同,字符相同 0
长度相同,某些字符不同 返回首个不相同字符的ASCII值差,this.charAt(k)-anotherString.charAt(k)
长度不同,短字符串与长字符串的前几位不完全相同 返回首个不相同字符的ASCII值差,this.charAt(k)-anotherString.charAt(k)
长度不同,短字符串与长字符串的前几位完全相同 返回这两个字符串的长度差,this.length()-anotherString.length()

代码

public class StringTest {
    public static void main(String[] args) {
        String str1 = "10";
        String str2 = "20";
        String str3 = "110";
        String str4 = "200";
        String str5 = "abc";
        String str6 = "2ab";
        String str7 = "2ad";
        String str8 = "2abc";
        String str9 = "2abcd";

        System.out.println(str1.compareTo(str2));
        System.out.println(str1.compareTo(str3));
        System.out.println(str2.compareTo(str3));
        System.out.println(str3.compareTo(str4));
        System.out.println(str4.compareTo(str5));
        System.out.println(str4.compareTo(str6));
        System.out.println(str6.compareTo(str8));
        System.out.println(str6.compareTo(str9));
        System.out.println(str7.compareTo(str9));
    }
}

结果

结果 结果说明
-1 ‘1’-‘2’ 的结果为-1
-1 ‘0’-‘1’ 的结果为-1
1 ‘2’-‘1’ 的结果为1
-1 ‘1’-‘2’ 的结果为-1
-47 ‘2’-‘a’ 的结果为-47
-49 ‘0’-‘a’ 的结果为-49
-1 长度相差1
-2 长度相差2
2 ‘d’-‘b’ 的结果为2

结论

在使用compareTo进行数据格式的字符串比较时需要注意,可能得到错误的结果。

你可能感兴趣的:(Java,String)