比较器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)
       }
      	}