项目中存在版本的比较:
比如:V3.23.09之前版本走一个逻辑,之后走另外的一个逻辑
fun compareVersions(version1: String, version2: String): Int {
val version1Parts = version1.split(".")
val version2Parts = version2.split(".")
val minLength = minOf(version1Parts.size, version2Parts.size)
for (i in 0 until minLength) {
val part1 = version1Parts[i].toInt()
val part2 = version2Parts[i].toInt()
if (part1 < part2) {
return -1 // version1 < version2
} else if (part1 > part2) {
return 1 // version1 > version2
}
}
return version1Parts.size.compareTo(version2Parts.size)
}
或者使用hutool的VersionComparator
VersionComparator.INSTANCE.compare(version,targetVersion) > 0
比较的时候是按照字符比较的
class SendServiceTest : FunSpec({
test("VersionComparator") {
val targetVersion="V3.23.09"
VersionComparator.INSTANCE.compare("V3.21.03",targetVersion) shouldBe -2
VersionComparator.INSTANCE.compare("V3.22.03",targetVersion) shouldBe -1
VersionComparator.INSTANCE.compare("V3.22.03.01",targetVersion) shouldBe -1
VersionComparator.INSTANCE.compare("V3.23.06",targetVersion) shouldBe -3
VersionComparator.INSTANCE.compare("V3.23.09",targetVersion) shouldBe 0
VersionComparator.INSTANCE.compare("V3.23.09.01",targetVersion) shouldBe 1
VersionComparator.INSTANCE.compare("V3.23.02",targetVersion) shouldBe -7
VersionComparator.INSTANCE.compare("V3.23.12",targetVersion) shouldBe 1
}
})
文章介绍了如何在项目中进行版本号的比较,提供了一个自定义的`compareVersions`函数,该函数将版本号拆分并逐部分进行整数比较。此外,还提到了Hutool库中的`VersionComparator`工具类,用于版本号的比较,并展示了不同版本与`V3.23.09`的比较结果。
403

被折叠的 条评论
为什么被折叠?



