新手求助 求帮忙 小问题

System.out.print(list5[num]);//1
System.out.print(list5[num].compareTo("论文答辩"));//2

1显示的值是论文答辩 这样为何2显示的值为0?

相等,返回的就是零
不相等时,按比较的结果返回一个正数或负数

可以查看一下compareTo的API就知道答案了,相等的时候返回0,大于的时候返回1,小于的时候返回-1。

看一下String的compareTo的源码就知道了

 public int  compareTo(String anotherString) {
        int len1 = value.length;
        int len2 = anotherString.value.length;
        int lim = Math.min(len1, len2);
        char v1[] = value;
        char v2[] = anotherString.value;

        int k = 0;
        while (k < lim) {
            char c1 = v1[k];
            char c2 = v2[k];
            if (c1 != c2) {
                return c1 - c2;
            }
            k++;
        }
        return len1 - len2;
    }

相等和不相等的问题
可以用帮助文档查询