Java代码解释 - 简短

时间:2013-12-04 13:09:28

标签: java

有人可能会添加一些评论来解释它的过程。我很困惑(a.compareTo(b)<=0)如何运作。

public class step31 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //Number
        String a = "AB";
        String b = "AC";
        String c = "AD";
        String d = "";
        if(a.compareTo(b)<=0) // using compareTo to compare between two strings, it return a number, if the number <=0 then a less than b
        {
            if(c.compareTo(a)<=0)
            {
                d = "'c'<='a'<='b'";
            }
            else if(b.compareTo(c)<=0)
            {
                d = "'a'<='b'<='c'";
            }
            else
            {
                d = "'a'<='c'<='b'";
            }
        }
        // a>b
        else
        {
            if(a.compareTo(c)<=0)
            {
                d = "'b'<='a'<='c'";
            }
            else if(c.compareTo(b)<=0)
            {
                d = "'c'<='b'<='a'";
            }
            else
            {
                d = "'b'<='c'<='a'";
            }
        }
        System.out.println(d);

    }

}

一些意见将不胜感激。

5 个答案:

答案 0 :(得分:0)

查看与compareTo

相关的javadoc

答案 1 :(得分:0)

  

按字典顺序比较两个字符串。比较是基于   字符串中每个字符的Unicode值。字符序列   由此String对象表示,按字典顺序进行比较   由参数字符串表示的字符序列。结果是   如果此String对象按字典顺序排在前面,则为负整数   参数字符串。如果是这个String,结果是一个正整数   对象按字典顺序跟随参数字符串。结果是   如果字符串相等则为零; compareTo正好返回0   equals(Object)方法将返回true。这是定义   词典排序。如果两个字符串不同,那么它们   在某个索引处有不同的字符,这两个索引都是两者的有效索引   字符串,或它们的长度不同,或两者兼而有之。如果他们有   在一个或多个索引位置的不同字符,让k为   最小的指数;然后是位置k处的字符所具有的字符串   较小的值,通过使用&lt;运营商,   按字典顺序排列在另一个字符串之前。在这种情况下,compareTo   返回位置k in的两个字符值的差值   两个字符串 - 即值:

     

this.charAt(k)-anotherString.charAt(k)如果没有索引   它们不同的位置,然后是较短的弦   按字典顺序排列在较长的字符串之前。在这种情况下,compareTo   返回字符串长度的差异 - 即   value:this.length() - anotherString.length()

     

如果参数字符串等于此字符串,则值为0;一个值   如果此字符串按字典顺序小于字符串,则小于0   参数;如果此字符串为,则值大于0   按字典顺序大于字符串参数。

来自java doc

答案 2 :(得分:0)

a.compareTo(b) <= 0表示a <= b,即如果ab相同或更早,则按字母顺序排序时为true。 (使用<=之类的比较符对于除Java中的数字之外的任何内容都是非法的,这就是需要compareTo方法的原因。)

同样,a.compareTo(b) > 0将被解释为a > b

答案 3 :(得分:0)

我建议您使用IDE,例如Eclipse,它允许您进入代码。例如,在Eclipse中,您可以选择方法,然后单击“f3”,您将跳转到您想知道的方法。

答案 4 :(得分:0)

http://www.tutorialspoint.com/java/java_string_compareto.htm - 关于与方法比较的优秀教程

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#compareTo(java.lang.String) - javadocs java 7 String类检查比较方法

从方法返回

The value 0 if the argument is a string lexicographically equal to this string; a value less than 0 if the argument is a string lexicographically greater than this string; and a value greater than 0 if the argument is a string lexicographically less than this string.

希望这能给你一些指示