重新格式化嵌套调用以映射,拆分,修剪等

时间:2015-01-25 04:52:24

标签: scala

格式化以下操作的更佳方法是什么?这似乎充其量只是kludgy

我有一个看起来像这样的字符串

val text = "$395.00 from Stylebop $185.50 from shopbop $239.00 from Intermix $335.00 from Nordstrom"

我在哪里尝试获取Array((字符串,字符串))数组(商店,价格)

我有以下内容:

val text = x.split("\\s\\$")
      .map(x => x.replace("$","")
      .split("from")
      .map(_.trim()))
      .map(x => (x(1),x(0)))

1 个答案:

答案 0 :(得分:3)

你可以只与一个正则表达式匹配:

"""\$([\d.]+) from ([^\$]+)""".r
    .findAllMatchIn(text)
    .map(m => (m.group(2).trim, m.group(1)))
    .toArray

// Array((Stylebop,395.00), (shopbop,185.50), (Intermix,239.00), (Nordstrom,335.00))