Groovy: Как отсортировать массив текста и чисел по номерам в середине - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть такой массив:

def array = [ 
  "release-3.0.0-1-a6gbd6",
  "release-3.0.0-10-h7bdbc",
  "release-3.0.0-12-7hbs6",
  "release-3.0.0-23-9sz6gd",
  "release-3.0.0-3-g6h8xd",
]

Мне нужно, чтобы он был в состоянии отсортировать его по номерам в середине (например, 3.0.0-1) в обратном порядке, чтобы выглядеть так:

def array = [ 
  "release-3.0.0-23-9sz6gd",
  "release-3.0.0-12-7hbs6",
  "release-3.0.0-10-h7bdbc",
  "release-3.0.0-3-g6h8xd",
  "release-3.0.0-1-a6gbd6",
]

Как я могу сделать это с Groovy?

Я попытался выполнить следующие действия: Groovy: Как отсортировать строковый массив текста + числа по последней цифре , но у меня нетудачи

1 Ответ

0 голосов
/ 23 сентября 2018

Кажется, это работает

def newArray = array.sort(false){[it.tokenize('-')[-3], it.tokenize('-')[-2] as Integer]}

Здесь мы сортируем строку после первого тире, а затем сортируем по целому числу после второго тире

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...