对于如何在另一个字符串的基础上创建新字符串,替换原始字符串的某些值,我感到困惑
如果我有
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 }
但是这只是产生原始数组,为什么它不起作用?
答案 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("\\(|\\)", "_"))
映射到数组内部,并用下划线替换所有左括号或右括号(括号是正则表达式的特殊字符,因此必须使用反斜杠进行转义)。