java比较版本号,比如1.0.3和1.2.1相比较考虑到可以用String的compareTo()方法,代码如下:
public class MainClass {
public static void main(String[] args) {
String version1 = "1.0.3";
String version2 = "1.2.1";
int compareTo = version1.compareTo(version2);
System.out.println(compareTo);
}
}
输出结果是-2,也就是说version1小,这是正确的。
但是,这种情况仅限于小数点左右的数字位数相同,如果不相同,会出现一下情况:
public class MainClass {
public static void main(String[] args) {
String version1 = "5.2.3790.24123";
String version2 = "5.11.7883";
int compareTo = version1.compareTo(version2);
System.out.println(compareTo);
}
}
这是输出结果是1,表示version1大,显然是错误的。
所以,正常逻辑应该是以小数点分隔,对应位置上的数字比较大小,