string - 从字符串列表中删除字符

标签 string scala

要从我使用的字符串列表中删除字符:

val validLines : List[String] = List("test[" , "test]")

    val charsToClean: List[String] = List("\"", "[", "]", "'")

    val filtered = validLines.map(line => line.replace(charsToClean(0), "")
      .replace(charsToClean(1), "")
      .replace(charsToClean(2), "")
      .replace(charsToClean(3), ""))

我正在尝试使用内部映射函数而不是硬编码要替换的字符的位置:
val filtered1 : List[String] = validLines.map(line => charsToClean.map {c => line.replace(c , "")  })

但收到编译器错误:
mismatch; found : List[List[String]] required: List[String]

应该是 line.replace(c , "") 的结果不被退回?

最佳答案

不,因为您的代码更像是:对于每个字符串和每个不需要的字符,返回替换 对于这个符号 (n^2 个字符串)。

您可能想要做的事情可以使用以下代码段来实现:

val rawLines : List[String] = List("test[" , "test]")
val blacklist: Set[Char] = Set('\"', '[', ']' ,''')
rawLines.map(line => line.filterNot(c => blacklist.contains(c)))
// res2: List[String] = List(test, test)

或者,如@ka4eli 在他的回答中所示,使用正则表达式。

关于string - 从字符串列表中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31908521/

相关文章:

algorithm - 如何通过在scala中映射来制作字符串序列?

c - 函数和字符串

java - 如何将字符串传递到组合框?

java - 当字符串中有逗号时,无法找到两个字符串数组的正确交集

删除 R 中符号(连字符)后面的空格

postgresql - 我可以包装 session 以创建光滑的交易吗?

java - 在不使用脚本引擎的情况下评估 kotlin 中的字符串表达式

scala - 在 Scalatra 示例代码中找到 Scala 中的代字号

scala - Null、Nil 和 Nothing 之间有什么区别?

java - 你能提供 Java 中的 scala View 边界吗?