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

项目中存在版本的比较:
比如: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
	}
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MonkeyKing.sun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值