Fork me on Gitee

比较器CompareTo的使用

比较器CompareTo的使用

  • 源码

    package test;

    import java.text.SimpleDateFormat;
    import java.util.Date;

    public class Test {

    public static void main(String[] args) {
    String date1 = "2018-08-31";
    String date2 = "2018-09-01";
    int i = date1.compareTo(date2);//日期1大于日期2 应该是1的 原因: 它是先比较对应字符的大小(ASCII码顺序)
    System.out.println(i); //-1

    String date3 = "2018-08-29 10:05:10";
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
    String date4 =df.format(new Date());// new Date()为获取当前系统时间
    int i1 = date3.compareTo(date4);
    System.out.println(i1);

    /*compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,
    * 结束比较,返回他们之间的 差值,如果第一个字符和参数的第一个字符相等,
    * 则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,
    * 这时就比较字符的长度.
    * 例: */
    String s1 = "abc";
    String s2 = "abcd";
    String s3 = "abcdfg";
    String s4 = "1bcdfg";
    String s5 = "cdfg";
    System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1)
    System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3)
    System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
    System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)
    }
    }

posted @ 2018-08-29 13:14  明叶师兄。  阅读(1127)  评论(0)    收藏  举报