В текстовом файле у меня есть данные в форме:
1)
text
text
2)
more text
3)
even more text
more even text
even more text
...
Я прочитал его как список строк, используя следующее:
val input = io.Source.fromFile("filename.txt").getLines().toList
Я хочу разбить список на суб-списки, начиная с 1)
, 2)
и т.д.
Я придумал:
val subLists =
input.foldRight( List(List[String]()) ) {
(x, acc) =>
if (x.matches("""[0-9]+\)""")) List() :: (x :: acc.head) :: acc.tail
else (x :: acc.head) :: acc.tail
}.tail
Можно ли это сделать проще? Было бы очень приятно, если бы был встроенный метод разбиения коллекции на каждый элемент, который удовлетворяет предикату (подсказка, подсказка, дизайнеры библиотек:)).