scala - 过滤字符串序列直到在scala中找到键的功能方法

标签 scala scala-collections

我有一大串字符串,我只对找到某个字符串后出现的部分感兴趣。例如,序列可以是 -

..
..
one
two
three
four
five
..
..

我想过滤四之前的所有行,以获得一个仅包含(四、五、...等...)的过滤序列

如何在 Scala 中以函数式的方式编写此代码?

提前致谢。

最佳答案

它是存储在文件中还是存储在某种集合中的内存中?

所有scala集合中都有方法dropWhile:

val s = Seq("..", "..", "one", "two", "three", "four", "five", "..", "..")
// Seq[String] = List(.., .., one, two, three, four, five, .., ..)

s.dropWhile{ _ != "four" }
// Seq[String] = List(four, five, .., ..)

它适用于 Iterator,所以你可以这样使用它:

val lines = io.Source.fromFile("bigFile.txt").getLines().dropWhile{ _ != "four" }

关于scala - 过滤字符串序列直到在scala中找到键的功能方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20681394/

相关文章:

scala - 与 Scala 并行创建 map 的最佳方法是什么?

java - lambda 反序列化 - lambda 表达式是否总是脱糖为 Scala 的静态方法?

使用两个列表的 Scala 排列

scala - SBT 1.0 崩溃 - java.lang.VerifyError : Uninitialized object exists on backward branch

scala - 传递 Seq[Setting[_]] 作为 Project.settings() 参数之一

scala - 在foldleft中使用collection.Map

scala - 在 Scala 中使用 Shapeless 折叠不同类型的列表

scala - 如何展平使用 I/O 的嵌套 For Comprehension?

scala - 在 Scala 中对数组数组执行元素添加的惯用方法是什么

scala - 在 Scala 2.8 集合中,为什么在 Iterable 之上添加 Traversable 类型?