有没有比较版本号的标准习惯用法?我不能只使用一个直接的字符串compareTo,因为我还不知道最大释放点的数量是多少。我需要比较不同的版本,并满足以下条件:
1.0 < 1.1
1.0.1 < 1.1
1.9 < 1.10
发布于 2008-10-13 17:57:23
使用点作为分隔符对字符串进行标记化,然后从左开始并排比较整数转换。
发布于 2011-07-10 20:02:16
使用Maven真的很容易:
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
DefaultArtifactVersion minVersion = new DefaultArtifactVersion("1.0.1");
DefaultArtifactVersion maxVersion = new DefaultArtifactVersion("1.10");
DefaultArtifactVersion version = new DefaultArtifactVersion("1.11");
if (version.compareTo(minVersion) < 0 || version.compareTo(maxVersion) > 0) {
System.out.println("Sorry, your version is unsupported");
}
您可以从this page获取正确的Maven工件的依赖项字符串
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.0.3</version>
</dependency>
发布于 2016-10-17 23:04:36
想知道为什么每个人都认为版本只由整数组成--在我的例子中并非如此。
为什么要重新发明轮子(假设版本遵循Semver标准)
首先通过Maven安装https://github.com/vdurmont/semver4j
然后使用这个库
Semver sem = new Semver("1.2.3");
sem.isGreaterThan("1.2.2"); // true
https://stackoverflow.com/questions/198431
复制相似问题