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