版本比较器:自己写或者使用hutool的包

文章介绍了如何在项目中进行版本号的比较,提供了一个自定义的`compareVersions`函数,该函数将版本号拆分并逐部分进行整数比较。此外,还提到了Hutool库中的`VersionComparator`工具类,用于版本号的比较,并展示了不同版本与`V3.23.09`的比较结果。

项目中存在版本的比较:
比如: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
	}
})
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值