Я только недавно начал работать со Scala и столкнулся лицом к лицу с проблемой, решение которой, похоже, не могу найти.В общем, мне дан входной текстовый файл с именем «in.txt», который включает в себя строки координат, с которыми я должен работать, как я показал ниже.
2 1
6 6
4 2
2 5
2 6
2 7
3 4
6 1
6 2
2 3
6 3
6 4
6 5
6 7
Я решилиспользовать List для хранения всех значений, чтобы я мог использовать встроенные функции для выполнения вычислений со значениями впоследствии.
val lines = io.Source.fromFile("in.txt").getLines
val coordinates =
lines
.drop(0)
.toList
.sortWith(_<_)
.mkString
.replaceAll("\\s", "")
.grouped(2)
.toList
Все работает как надо, как вывод println (координаты) - это
List(21, 23, 25, 26, 27, 34, 42, 61, 62, 63, 64, 65, 66, 67)
Но я хочу создать несколько списков из этого.Например, новый список должен быть создан, если, например, значение начинается с «2», и все значения, начинающиеся с «2», будут помещены в новый список следующим образом:
List(21, 23, 25, 26, 27)
Затем то же самое будет сделано с «3», затем «4» и так далее.
Использование таких функций, как .partition и .groupBy , работает, но с учетом того факта, что значения в координатах также могут достигать 4-значных чисел, и чтоони могут измениться, если исходный файл отредактирован, было бы больно писать все эти условия вручную.В общем, мой вопрос заключается в следующем: возможно ли достичь этого, используя функциональность Scala, какую-то форму итераций?
Заранее спасибо!