如果有人使用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你不能让我享受我的胜利时刻吗? ?哦,不,你必须挑剔。我勉强更新我的答案,包括你的建议,谢谢:) –
哈哈哈...对不起;-) *洗牌回他的办公桌* –