首页 > 解决方案 > 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 }

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

标签: scala

解决方案


你可以这样做:

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("\\(|\\)", "_"))

在数组内部映射并用下划线替换所有左括号或右括号(括号需要用反斜杠转义,因为它们是正则表达式特殊字符)。


推荐阅读