写一个java app版本比较算法
时间: 2024-01-23 14:04:12 浏览: 30
以下是一个简单的 Java 版本比较算法,它比较两个版本号并返回它们之间的差异:
```java
public static int compareVersion(String version1, String version2) {
String[] v1 = version1.split("\\.");
String[] v2 = version2.split("\\.");
int i = 0;
// Compare each part of the version number.
while (i < v1.length || i < v2.length) {
if (i < v1.length && i < v2.length) {
if (Integer.parseInt(v1[i]) < Integer.parseInt(v2[i])) {
return -1;
} else if (Integer.parseInt(v1[i]) > Integer.parseInt(v2[i])) {
return 1;
}
} else if (i < v1.length) {
if (Integer.parseInt(v1[i]) != 0) {
return 1;
}
} else if (i < v2.length) {
if (Integer.parseInt(v2[i]) != 0) {
return -1;
}
}
i++;
}
return 0;
}
```
该方法接受两个版本号作为输入,并将它们分割成由点分隔的子字符串数组。然后它遍历这些数组,并在每个位置上比较两个版本号的子字符串。如果一个版本号的子字符串小于另一个版本号的子字符串,那么它们是不同的版本,并且返回 `-1` 或 `1`,具体取决于哪个版本号更小或更大。如果两个版本号的子字符串相等,则继续比较下一个子字符串,直到比较完所有的子字符串。如果两个版本号完全相等,则返回 `0`。