黑马程序员技术交流社区
标题:
compareTo的用法
[打印本页]
作者:
李志广
时间:
2012-7-28 10:15
标题:
compareTo的用法
本帖最后由 007lzg 于 2012-7-28 13:06 编辑
class StringDemo
{
public static void main(String[] args)
{
getMethod();
}
public static void getMethod()
{
String s1=new String("acc");
String s2=new String("add");
String s3=new String("abc");
sop(s1.compareTo(s3));//结果为:1
sop(s1.compareTo(s2));//结果为:-1
sop(s2.compareTo(s3));//结果为:2
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
不明白为什么输出的结果为什么是1、-1 、2 compareTo原理是什么???求详解
作者:
纪艺松
时间:
2012-7-28 10:24
如果参数字符串等于此字符串,则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。
注意是小于零的数和大于零的数,不一定要是1或者-1
s1中第二个字符“c”大于s3中的二个字符“b”所以返回一个大于零的数1;以此类推后两结果
切记:是小于零的数和大于零的数,不一定要是1或者-1
作者:
乐峰
时间:
2012-7-28 10:30
实例String类型的对象,调用该类的compareTo()方法,该方法的原理是:按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0。
sop(s1.compareTo(s3));//结果为:1//这个就是s3和s1进行比较,a和a顺序一样,b在c的顺序之前,所以该结果是正整数。下面的也是这个顺序比较法
sop(s1.compareTo(s2));//结果为:-1
sop(s2.compareTo(s3));//结果为:2
作者:
王龙彪
时间:
2012-7-28 10:37
String类的compareTo方法按字典顺序比较两个字符串。
如果参数字符串等于此字符串,则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。
所以
acc - abc = 1 返回 1
acc - add = -1
add - abc = 2
返回值是第一个不同字符的值的差
作者:
李菁
时间:
2012-7-28 10:40
compareTo方法是比较一个对象和指定对象的顺序。
如果该对象小于指定对象,返回负整数;该对象等于指定对象,返回0;该对象大于指定对象返回正整数
作者:
李志广
时间:
2012-7-28 10:57
还是不太明白,字典顺序是怎么回事?能不能把具体怎么比较给说一下?
作者:
fiend
时间:
2012-7-28 11:40
我画了张图:
比较.jpg
(15.67 KB, 下载次数: 120)
下载附件
2012-7-28 11:39 上传
就是这个原理了。
作者:
李志广
时间:
2012-7-28 17:47
本帖最后由 007lzg 于 2012-7-28 17:49 编辑
为什么提问问题自己没有被加分呢??还是自己提问的太没有水平了?{:soso_e150:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2