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进行数据格式的字符串比较时需要注意,可能得到错误的结果。