java 版本号比较大小工具类
时间: 2023-09-01 14:02:47 浏览: 54
下面是一个Java版本号比较大小的工具类示例:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class VersionComparator {
public static int compare(String version1, String version2) {
String pattern = "(\\d+)(\\.|$)";
Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher1 = compiledPattern.matcher(version1 + ".");
Matcher matcher2 = compiledPattern.matcher(version2 + ".");
while (matcher1.find() && matcher2.find()) {
int num1 = Integer.parseInt(matcher1.group(1));
int num2 = Integer.parseInt(matcher2.group(1));
if (num1 < num2) {
return -1;
} else if (num1 > num2) {
return 1;
}
}
return 0;
}
public static void main(String[] args) {
String version1 = "1.0.0";
String version2 = "1.0.1";
int result = compare(version1, version2);
if (result < 0) {
System.out.println(version1 + " is older than " + version2);
} else if (result > 0) {
System.out.println(version1 + " is newer than " + version2);
} else {
System.out.println(version1 + " is the same as " + version2);
}
}
}
```
这个工具类使用正则表达式来将版本号分解成数字部分和分隔符部分。然后使用`Matcher`对象从左到右依次比较两个版本号的数字部分。如果某个数字部分不同,就可以根据数字大小来判断两个版本号的比较结果。如果所有数字部分都相同,说明两个版本号相等。使用示例中比较了两个版本号"1.0.0"和"1.0.1",并输出比较结果。