Scala中的字符串替换字符串数组

时间:2018-07-11 08:27:04

标签: scala

对于如何在另一个字符串的基础上创建新字符串,替换原始字符串的某些值,我感到困惑

如果我有

Array(easy_id, 1_sum(term_invested_points), 1_sum(std_invested_points), 1_sum(std_used_points), 1_sum(term_used_points), 9_sum(term_invested_points))

并想生产

Array(easy_id, 1_sum_term_invested_points_, 1_sum_std_invested_points_, 1_sum_std_used_points_, 1_sum_term_used_points_, 9_sum_term_invested_points_)

即在我的数组中用下划线代替括号。

我尝试过

array.columns.map{ case "" => "("; case x => x }

但是这只是产生原始数组,为什么它不起作用?

1 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

val arr = Array(
  "easy_id",
  "1_sum(term_invested_points)",
  "1_sum(std_invested_points)",
  "1_sum(std_used_points)",
  "1_sum(term_used_points)",
  "9_sum(term_invested_points)"
)

arr.map(_.replaceAll("\\(|\\)", "_"))

映射到数组内部,并用下划线替换所有左括号或右括号(括号是正则表达式的特殊字符,因此必须使用反斜杠进行转义)。