我总结了一下有两种方法:
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);
}
}
/**
* 判断ios版本
* @param softVersion1 app版本
* @param softVersion2 目标版本
* @param clientid
* @return boolean
*/
public static boolean CompareIOSVersion(String softVersion1,String softVersion2){
if(softVersion1.compareTo(softVersion2)>=0){
return true;
}
return false;
}