gpt4 book ai didi

scala - 读取平面文件中组行的最佳方法

转载 作者:行者123 更新时间:2023-12-02 06:55:30 25 4
gpt4 key购买 nike

我有一个由行组组成的文件。每个组代表一个事件。组的结尾用“END”表示。我可以想到使用 for 循环遍历行,存储中间行并在遇到“END”时发出组。

但是因为我想用 Scala 来做。我想知道是否有人可以建议一种更实用的方法来完成同样的事情?

----------
A
B
C
END
----------
D
E
F
END
----------

最佳答案

只需定义一个迭代器来返回组

 def groupIterator(xs:Iterator[String]) =
new Iterator[List[String]]
{ def hasNext = xs.hasNext; def next = xs.takeWhile(_ != "END").toList}

测试(使用 Iterator[String],但是 Source.getLines 会返回一个 Iterator for your file)

val str = """
A
B
C
END
D
E
F
END
""".trim

for (g <- groupIterator(str.split('\n').toIterator)) println(g)
//> List(A, B, C)
//| List(D, E, F)

关于scala - 读取平面文件中组行的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32171078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com