【发布时间】:2013-06-12 21:42:32
【问题描述】:
我想根据某个表达式有条件地合并列表中彼此跟随的元素。 一个更好地解释我想做的例子:
来自:
val list = List("a1", "a2", "b1", "b2", "b3", "a3", "a4")
我想将所有以 b 开头的元素合并为一个元素,以获得如下结果列表:
List("a1", "a2", "b1-b2-b3", "a3", "a4")
在我的用例中,b 元素总是按顺序排列,但 b 元素的数量可以从没有元素到几十个元素不等。
我试过做类似的事情
list.foldLeft("")((s1, s2) => if (s1.matches("""b\d""") && s2.matches("""b\d""")) s1 + "-" + s2 else s1)
但这并没有给我带来任何有用的东西。
关于如何解决这个问题的任何建议?
【问题讨论】:
标签: scala