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


格式化

以下操作的更优化方法是什么?这充其量看起来很笨拙

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

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

我试图访问数组((字符串,字符串))其中数组(商店,价格)

我有以下几点:

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

您只需与一个正则表达式匹配即可完成此操作:

"""$([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))

最新更新