使用Java代码来比较Android客户端版本号
关键点
为什么不能使用String.compareTo方法来比较客户端版本号?
举个例子,之前客户端版本号为:9.9.9,而服务器端最新的客户端版本号为:10.0.1,虽然10.0.1明显高于9.9.9,但是按照compareTo方法,这个9.9.9是大于10.0.1的,导致客户端版本号比较错误。
Java代码实现
扯了一些,最后还是要show一下代码的,以下是我的客户端版本号比较代码,欢迎吐槽。
publicstaticintcompareVersion(Stringversion1,Stringversion2){
if(version1.equals(version2)){
return0;
}
String[]version1Array=version1.split("\\.");
String[]version2Array=version2.split("\\.");
intindex=0;
intminLen=Math.min(version1Array.length,version2Array.length);
intdiff=0;
while(index<minLen&&(diff=Integer.parseInt(version1Array[index])-Integer.parseInt(version2Array[index]))==0){
index++;
}
if(diff==0){
for(inti=index;i<version1Array.length;i++){
if(Integer.parseInt(version1Array[i])>0){
return1;
}
}
for(inti=index;i<version2Array.length;i++){
if(Integer.parseInt(version2Array[i])>0){
return-1;
}
}
return0;
}else{
returndiff>0?1:-1;
}
}
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练