Compare version strings in groovy

后端 未结 11 1925
耶瑟儿~
耶瑟儿~ 2020-11-30 09:50

Hey I have created a Groovy script that will extract the version numbers of some folder. I would then like to compare the version numbers and select the highest.

I g

11条回答
  •  遥遥无期
    2020-11-30 10:40

    Here my solution:

    def availVersion = "1.5.0.2"
    def ownVersion   = "2.6.0.1"
    
    def availTokens = availVersion.split('\\.')
    def ownTokens   = ownVersion.split('\\.')
    
    def availSize   = availTokens.size()
    def ownSize     = ownTokens.size()
    
    def maxSize     = Math.max(availSize, ownSize)
    
    for (int i = 1; i <= maxSize; i++) {
        def availItem = ((i <= availSize) ? availTokens[i - 1] : 0)
        def ownItem    = ((i <= ownSize)  ? ownTokens[i - 1]   : 0)
    
        print "Avail: ${availItem} -> Own: ${ownItem}\n"
    
        if ((ownItem > availItem) || ( (i == maxSize) && (ownItem >= availItem) )) {
            print "Upgrade NOT needed.\n"
            return
        }
    }
    
    print "Upgrade needed!\n"
    

提交回复
热议问题