CompareTo怎样比较

来源:百度知道 编辑:UC知道 时间:2024/06/12 00:46:18
是这样的,我想比较两个字符串的大小,一个为‘8-00’,一个为‘15-21’,然后使用了CompareTo方法,但是调试的结果却为8-00比15-21大,但是如果将8-00改为08-00的话,就比15-21小了,我想问一下这个是怎么回事的呢,如果是按照字符串长度来比较的话,那么15-21也应该比8-00大呀?

你要弄明白compareto的比较机制

compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的

差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方

全比较完,这时就比较字符的长度.

例:
String s1 = "abc";
String s2 = "abcd";
String s3 = "abcdfg";
String s4 = "1bcdfg";
String s5 = "cdfg";
System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1)
System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3)
System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)

s1.compareTo(s1.intValue())>0;//此方法判断是否为整型