根据我使用的条件匹配所有内容:
val c = "this is a test".split(" ").toList//> c : List[String] = List(this, is, a, test)
c.takeWhile({x => !x.equals("is")}) //> res0: List[String] = List(this)
是否有一个类似于takeWhile
的方法,除了它在谓词满意后需要一切?
因此c.takeAfter({x => x.equals("is")})
之类的内容会返回List("a" , "test");
答案 0 :(得分:1)
您可以使用dropWhile
:
scala> c.dropWhile(_ != "is")
res4: List[String] = List(is, a, test)
这将删除所有元素,直到它到达谓词,请注意包含谓词字符串,因此您需要检查列表是否为空,如果不是尾部。
答案 1 :(得分:1)
考虑span
将列表分成若干项,这些项目包含一个谓词,直到第一个无效,例如
val (l,r) = c.span( _ != "is" )
提供
l: List(this)
r: List(is, a, test)