Mic*_*ael 8 string collections scala
你会如何编写一个函数实现split(positions:List[Int], str:String):List[String],这类似于splitAt将给定的字符串拆分为给定的位置列表的字符串列表?
例如
split(List(1, 2), "abc") 回报 List("a", "b", "c")split(List(1), "abc") 回报 List("a", "bc")split(List(), "abc") 回报 List("abc")def lsplit(pos: List[Int], str: String): List[String] = {
val (rest, result) = pos.foldRight((str, List[String]())) {
case (curr, (s, res)) =>
val (rest, split) = s.splitAt(curr)
(rest, split :: res)
}
rest :: result
}
Run Code Online (Sandbox Code Playgroud)