java compare java中compareTo()的返回值 不是-1 ,1 , 0,而是-4587 ,12547 ....... 请问这是什么原因?

如题所述

compareTo()是两个字符串对象比较大小,返回一个整数值,如果调用字符串对象大,返回正整数,反之,返回负整数。相等则返回0。返回的值是两个串首次出现不同字符的ASCII的差值。

不是你说的一定是-1,1,0 哦
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-18
compareTo(T t)
返回 负整数、零或正整数,根据此对象是小于、等于还是大于指定对象。
并没有一定要返回-1,0,1除非你自己实现Comparable 自己从写这个方法
比如你调用字符串的compareTo()方法
String s1 = "a";
String s2="c";
s1.compareTo(s2);//得到-2说明s1在s2前两位
s2.compareTo(s1);//得到2说明s2在s1后两位

这个接口是对实现他的类自然排序,即常说的字典排序
然后
compareTo()返回的也就是排序位置的关系吧追问

但是我在Comparator的方法中使用
private final Collator sCollator = Collator.getInstance();
。。。。
return sCollator.compare(alabel, blabel);
就可以了,请指点。

本回答被提问者采纳
相似回答