黑马程序员技术交流社区

标题: 看题来 [打印本页]

作者: 疯疯疯疯疯子    时间: 2015-9-4 01:04
标题: 看题来
public class lianxi
{
        public static void main(String[] args)
        {
               
                System.out.println("88".compareTo("9"));
        }

}

答案是1的面壁去
作者: 0825王欢    时间: 2015-9-4 01:27
-1.。。。。。。。。。。。。。。。。。。。。。
作者: asinzuo    时间: 2015-9-4 07:16
0825王欢 发表于 2015-9-4 01:27
-1.。。。。。。。。。。。。。。。。。。。。。

比较的结果是正数、0、负数。
作者: 疯疯疯疯疯子    时间: 2015-9-4 09:32
0825王欢 发表于 2015-9-4 01:27
-1.。。。。。。。。。。。。。。。。。。。。。

知道为什么是-1吗?
作者: 疯疯疯疯疯子    时间: 2015-9-4 09:33
疯疯疯疯疯子 发表于 2015-9-4 09:32
知道为什么是-1吗?

知道为什么是-1吗?
作者: freehello    时间: 2015-9-4 10:15
看jdk源码,string.compareto源码就知道为什么了吗

作者: freehello    时间: 2015-9-4 10:16
看jdk源码,String.compareTo,就知道了

作者: 心之谷96    时间: 2015-9-4 10:55
因为是字符串的比较吧
作者: 疯疯疯疯疯子    时间: 2015-9-4 16:36
心之谷96 发表于 2015-9-4 10:55
因为是字符串的比较吧


作者: 123412    时间: 2015-9-4 17:08
必须是负数,而且是-1,因为compareTo()方法比较的时候,是一个一个就行比较的,就是说88和9进行比较时,是88中的第一个数字8和9先进行比较,接过就是-1。compareTo()方法在进行字符串比较的,也是这样,一个一个进行比较,一旦不是0,就不在进行比较了,其实我觉得只是一个漏洞,正儿八经的应该是将88的全体ASII值和9的整体ASII值进行比较,这样才符合大家的思维嘛,是吧。
作者: 疯疯疯疯疯子    时间: 2015-9-4 19:35
123412 发表于 2015-9-4 17:08
必须是负数,而且是-1,因为compareTo()方法比较的时候,是一个一个就行比较的,就是说88和9进行比较时, ...

哈哈,你这解释完全到位,赞,非常赞
作者: 123412    时间: 2015-9-5 15:20
谢谢你的夸奖




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2