首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中如何比较两个版本的字符串?

在Java中如何比较两个版本的字符串?
EN

Stack Overflow用户
提问于 2008-10-14 01:54:41
回答 25查看 131.3K关注 0票数 185

有没有比较版本号的标准习惯用法?我不能只使用一个直接的字符串compareTo,因为我还不知道最大释放点的数量是多少。我需要比较不同的版本,并满足以下条件:

代码语言:javascript
复制
1.0 < 1.1
1.0.1 < 1.1
1.9 < 1.10
EN

回答 25

Stack Overflow用户

回答已采纳

发布于 2008-10-13 17:57:23

使用点作为分隔符对字符串进行标记化,然后从左开始并排比较整数转换。

票数 64
EN

Stack Overflow用户

发布于 2011-07-10 20:02:16

使用Maven真的很容易:

代码语言:javascript
复制
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工件的依赖项字符串

代码语言:javascript
复制
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.0.3</version>
</dependency>
票数 117
EN

Stack Overflow用户

发布于 2016-10-17 23:04:36

想知道为什么每个人都认为版本只由整数组成--在我的例子中并非如此。

为什么要重新发明轮子(假设版本遵循Semver标准)

首先通过Maven安装https://github.com/vdurmont/semver4j

然后使用这个库

代码语言:javascript
复制
Semver sem = new Semver("1.2.3");
sem.isGreaterThan("1.2.2"); // true
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/198431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档