1、compareTo() 方法
比较两个字符串的ASCII码的差值,如果两个字符串首字母不同,则该方法返回首字母的ASCII码的差值;如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值;如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值。
结果判断:返回为正数表示a>b, 返回为负数表示a<b, 返回为0表示a==b。
使用错误记录:"9".compareTo("10") 返回的值为8。并不是我们理解中的 9<10。
2、逐一比较每位数
比如说,2.3.9 与 2.3.10之间的比较,我们把这个字符串分别拆成3个数,2与2,3与3,9与10之间分别来作比较。
具体使用方法:
/**
* 比较 本地版本与互联网上最新版本
*
* @param bd 本地版本
* @param flw 互联网版本
* @return 小于0:需要更新 等于0:无需更新 大于0:无需更新
*/
private int compareVersion(String bd, String flw) {
String[] bdbb = bd.split("\\.", -1);
String[] flwbb = flw.split("\\.", -1);
int num = Math.min(bdbb.length, flwbb.length);//取出较小的一位数
for (int i = 0; i < num; i++) {
int a1 = "".equals(bdbb[i]) ? 0 : Integer.parseInt(bdbb[i]);
int a2 = "".equals(flwbb[i]) ? 0 : Integer.parseInt(flwbb[i]);
if (a1 != a2) {
return a1 - a2;
}
}
return bdbb.length - flwbb.length;
}