具体代码如下:
/**
* 比较版本号的大小,前者大则返回一个正数,后者大返回一个负数,相等则返回0
*
*@paramversion1
*@paramversion2
*@return
*/
publicstaticintcompareVersion(Stringversion1,Stringversion2) {
if(StringUtils.isBlank(version2) ||StringUtils.isBlank(version1)){
return0;
}
String[]versionArray1=version1.split("\\.");// 注意此处为正则匹配,不能用".";
String[]versionArray2=version2.split("\\.");
intidx= 0;
intminLength=Math.min(versionArray1.length,versionArray2.length);// 取最小长度值
intdiff= 0;
while(idx
&& (diff=versionArray1[idx].compareTo(versionArray2[idx])) == 0) {// 再比较字符
++idx;
}
// 如果已经分出大小,则直接返回,如果未分出大小,则再比较位数,有子版本的为大;
diff= (diff!= 0) ?diff:versionArray1.length-versionArray2.length;
returndiff;
}