У меня есть текстовый файл, который содержит строки, которые следуют альтернативному шаблону, например:
name: SomeName
counterA: 0, counterB: 0, counterC: 0
name: SomeNameB
counterA: 1, counterB: 2, counterC: 3
...
Я хочу написать простой парсер, который выталкивает SameName и счетчики от A до C в новый объект.
Таким образом, задача в основном состоит в том, чтобы обрабатывать всегда две строки вместе.
Я начал с этого кода:
fun readFileAsLinesUsingReadLines(fileName: String): List<String> = File(fileName).readLines()
fun main(args: Array<String>) {
val lines = readFileAsLinesUsingReadLines("Whatever")
for (i in (0 .. lines.size-1 step 2)) {
println(lines[i]+lines[i+1])
}
}
и да, это печатает
name: SomeName counterA: 0, counterB: 0, counterC: 0
, который я могу затем проанализировать.
Но я считаю, что использование (0 .. lines-size-1 step)
не очень элегантно.
Существуют ли более элегантные или "более котлинские" способы получения этой информации?