如果有人使用Grails(如Grails的2.2.3),我想VersionComparator已經提供了我們需要的東西。
如果您不使用Grails,您可以隨時Google Google此類的源代碼。
工作試驗的例子:
import org.codehaus.groovy.grails.plugins.VersionComparator
assert ['1.13.4', '1.4.5'].sort(new VersionComparator()) == ['1.4.5', '1.13.4']
assert ['3.1.20', '3', '3.0.1', '3.1'].sort(new VersionComparator()) == ['3', '3.0.1', '3.1', '3.1.20']
assert ['02.2.02.02', '02.2.03.01', '02.2.02.01'].sort(new VersionComparator()) == ['02.2.02.01', '02.2.02.02', '02.2.03.01']
assert ['4', '2'].sort(new VersionComparator()) == ['2', '4']
assert ['4.1', '4'].sort(new VersionComparator()) == ['4', '4.1']
assert ['4.1', '5'].sort(new VersionComparator()) == ['4.1', '5']
assert new VersionComparator().compare('1.13.4', '1.4.5') > 0
assert new VersionComparator().compare('1.4.5', '1.13.4') < 0
希望這有助於。
來源
2014-05-16 15:21:44
Max
+ 1應該注意的是,'mostRecentVersion'方法會在'versions'參數被執行後對其進行排序(因爲'List.sort'默認情況下會突變列表)。如果這不是你想要的,你可以(在groovy 1.8.1+中)調用:'def sorted = versions.sort(false){a,b - >' –
@tim_yates你不能讓我享受我的勝利時刻嗎? ?哦,不,你必須挑剔。我勉強更新我的答案,包括你的建議,謝謝:) –
哈哈哈...對不起;-) *洗牌回他的辦公桌* –