【发布时间】:2020-12-08 00:35:31
【问题描述】:
如果我有一个字符串类型的列表,
scala> val items = List("Apple","Banana","Orange","Tomato","Grapes","BREAK","Salt","Pepper","BREAK","Fish","Chicken","Beef")
items: List[java.lang.String] = List(Apple, Banana, Orange, Tomato, Grapes, BREAK, Salt, Pepper, BREAK, Fish, Chicken, Beef)
如何根据特定的字符串/模式("BREAK",在这种情况下)将其拆分为 n 单独的列表。
我曾考虑用indexOf 找到"BREAK" 的位置,然后以这种方式拆分列表,或者使用与takeWhile (i => i != "BREAK") 类似的方法,但我想知道是否有更好的方法?
如果有帮助,我知道 items 列表中只会有 3 组项目(因此有 2 个 "BREAK" 标记)。
【问题讨论】:
-
splitAt可能更合适,但烦人的是BREAK仍然存在,需要手动删除。 -
这个问题类似,虽然不完全相同:stackoverflow.com/q/7293617/770361
-
+1 给 Luigi 以从 Martin Odersky 本人那里找到答案 :)