我总结了一下有两种方法:
1.如果只有包含一个小数点的版本比较,可以直接将版本号转为double类型再比较;
2.版本号中包含有2个或以上的小数点,此时无法将其转换为浮点数了。
查阅jdk文档,发现String类型有有compareTo(String anoterString)的方法:
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法equals(Object) 返回 true 时才返回0。
刚好可以用来判断版本号:
public static void main(String[] args) {
String appVersion="1.4.2";
String softVersion="1.5.0";
if(CompareIOSVersion(appVersion,softVersion)){
System.out.println("版本"+appVersion+"大于等于版本"+softVersion);
}else{
System.out.println("版本"+appVersion+"小于版本"+softVersion);
}
}
public static boolean CompareIOSVersion(String softVersion1,String softVersion2){
if(softVersion1.compareTo(softVersion2)>=0){
return true;
}
return false;
}