首先,说明一下java中的compareTo方法,比较此对象与指定对象的顺序。compareTo方法用于比较两个字符串的ASCII码的差值。常见的情况有3中:
第一种:比较两个单个字符
例如:
首先我们定义两个只有单个字符的变量i,j
String i = "a" , j = "b";
System.out.println(i.compareTo(j));
结果:-1;
String i = "a" , String j = "a";
System.out.println(i.compareTo(j));
结果:0;
String i = "b" , String j = "a";
System.out.println(i.compareTo(j));
结果:1;
结论:首先说明一下:a的ASCII码为97,b的ASCII码为98. 在使用compareTo方法时,若被比较的两个字符串
为单个字符,返回两个字符的ASCII码差值;
第二种:首字母不相同的字符串(非单个)
String i = "ab", j = "b";
结果:-1;
String i = "abc" , j = "def";
结果:-3
结论:首字母不相同的情况下,不论后面的是否相同,只比较首字母的ASCII码,返回首字母的ASCII码的差值。
第三种:首字母相同的字符串(非单个)
String i = "abcdef", j ="a";
结果:1;
String i = "abcdef", j ="ac";
结果:-1;
String i = "abcdef", j ="ab";
结果:4;
String i = "abcdef", j ="abcd";
结果:2;
String i = "abcdef", j ="abcde";
结果:1;
结论:如果参与运算的两个字符串的首字母是相同的,会依次的比较下一个字符,直到出现了不同的位置,在该
位置会比较不同字符,并返回这两个字符的ASCII的差值。
如果需要比较的两个字符的长度不一样,但是参与比较的两个字符串中从首字母开始不间断的存在相同部分
(即参与比较的字符均相同),则会返回两个字符串长度的差值。
compareTo方法可以用于比较字符串,在实际应用中我们可以考虑用compareTo方法来判断日期。例如:比较生产日期
与截至日期,可判断是否过期。
String makeData ="2017-07-27";
String passedData = "2017-09-27";
if(passedData.compareTo(makeData)>=0){
System.out.println("还处在有效期内!");
}else{
System.out.println("已经超过了有效期!");
}