2016-10-04 6 views
0

によってテキスト+数字の文字列配列をソートするためにどのように私はこのような配列を持っている:Groovyは:最後の桁

def arr = [ 
     "v3.1.20161004.0", 
     "v3.1.20161004.1", 
     "v3.1.20161004.2", 
     "v3.1.20161004.3", 
     "v3.1.20161004.10", 
     "v3.1.20161004.11", 
     "v3.1.20161004.30", 
    ] 

最後の数でそれをソートする方法:

def arr = [ 
     "v3.1.20161004.0", 
     "v3.1.20161004.1", 
     "v3.1.20161004.10", 
     "v3.1.20161004.11", 
     "v3.1.20161004.2", 
     "v3.1.20161004.3", 
     "v3.1.20161004.30", 
    ] 

が、私はこれを取得する必要があります'。バツ' ?

答えて

2

あなたはソートを定義することができる配列をソートするときに(新しいリストを返すようにfalseを渡す)

def newArray = arr.sort(false) { it.tokenize('.')[-1] as Integer } 
+0

はありがとうございました!これは華麗な解決策です! – fred05

2

.上の各文字列をトークン化して、整数として最後の要素をつかむと、これに並べ替えることができます閉鎖。この場合、あなたはドットに分割し、ソート宇宙船演算子を使用してすることができます

arr.sort { a, b -> a.tokenize('.').last().toInteger() <=> b.tokenize('.').last().toInteger() } 
+0

素早い応答をありがとう、それは私のために便利です。 – fred05

関連する問題