本文介绍了Groovy:如何按最后一位对文本+数字的字符串数组进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的数组:

    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",
    ]

我需要得到这个:

    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",
    ]

如何按最后一个数字'.x'排序?

How to sort it by last number '.x' ?

推荐答案

您可以将.上的每个字符串标记化,然后将最后一个元素作为Integer进行排序,并对此进行排序(传递false以返回新列表) )

You can tokenize each string on . and then grab the last element as an Integer, and sort on this (passing false to return a new list)

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

这篇关于Groovy:如何按最后一位对文本+数字的字符串数组进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-09 15:22