Groovy переменная символьная последовательность groupBy - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть карта элементов:

elemA1: value
elemB1: value
elemC1: value

...

elemA99: value
elemB99: value
elemC99: value

...

elemA7823: value
elemB7823: value
elemD7823: value

Я хочу использовать groupBy для группировки каждого набора элементов по номеру.

Число всегда будет в конце клавиши, но моя проблема в том, что число может быть любым количеством символов.

1 Ответ

1 голос
/ 28 сентября 2019

Просто сделайте так, чтобы замыкание groupBy извлекало ту часть ключа, по которой вы хотите группировать данные.Здесь я использую регулярное выражение /\d+$/, чтобы получить цифры в конце ключа.

def map = [
  elemA1: "1",
  elemB1: "B1",
  elemA99: "A99",
  elemB99: "B99"
]

map.groupBy { ( it.key =~ /\d+$/ )[0] } // [1:[elemA1:1, elemB1:B1], 99:[elemA99:A99, elemB99:B99]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...