Я хочу условно объединить элементы, следующие за каждым в списке, на основе некоторого выражения. пример, чтобы лучше объяснить, что я хотел бы сделать:Условно элементы списка слияния
от:
val list = List("a1", "a2", "b1", "b2", "b3", "a3", "a4")
Я хотел бы объединить все элементы, начиная с Ь в один элемент, чтобы получить результирующий список, как это:
List("a1", "a2", "b1-b2-b3", "a3", "a4")
в моем случае использования, B-элементы всегда следуют последовательно, но число би-элементов может изменяться от каких-либо элементов до десятков элементов.
Я пытался сделать что-то вроде
list.foldLeft("")((s1, s2) => if (s1.matches("""b\d""") && s2.matches("""b\d""")) s1 + "-" + s2 else s1)
но это не делает мне ничего полезного.
Любые предложения о том, как подойти к этому?
Спасибо, первый пример отлично работает! – Lundahl