此问题已在此处有答案:
Sort list of version numbers groovy(2个答案)
10天前关闭。
考虑一个数组:
def arr= [
"7.11.2",
"6.2.1",
"1.4",
"4.13.5",
"4.2.5",
"13",
"1.2.5",
"1.4.2",
"6.15.3",
"6.4.4"
]
我需要它看起来像这样:
def list = [
"1.2.5",
"1.4",
"1.4.2",
"4.2.5",
"4.13.5",
"6.2.1",
"6.4.4",
"6.15.3",
"7.11.2",
"13"
]
请告诉我怎么做.
在数组上调用.sort()
似乎是逐位排序,而不是按点分隔的数字排序。
2条答案
按热度按时间gtlvzcf81#
你可以像这样解析和编号你的版本:
wtzytmuj2#
虽然我完全同意前面的答案,但我想提另一个选择。如果你使用的是Java 9+,有一个名为java.lang.module.ModuleDescriptor.Version的类,也许对你的例子来说,它是一个过度的,但如果你有更复杂的版本,如
-alpha
,-RC
等。这门课可能很有帮助。您只需要使用Version.compareTo
方法进行排序。