【发布时间】:2017-02-17 03:24:34
【问题描述】:
我是一个相对较新的程序员,通过 udemy 课程学习 scala 和函数式编程。
我正在寻求根据另一个字符串列表过滤字符串列表。我想减少第一个列表,这样当我打印出来时,它只包含单词 - “rob”,“learns”,“scala”
这是我正在使用的代码:
val list1:Array[String] = Array("rob","you", "to","learns", "your", "the","scala", "a")
val badWords:Array[String] = Array("you", "to", "your", "the", "a")
val list2 = list1.map(x => badWords.map(badWord => list1.filter(word => word != badWord)))
for (word <- list2) {
println(word)
}
我的逻辑是,对于 list1 中的每个单词,然后我尝试将每个 badWord 元素与当前 list1 项进行比较,以确定是否应该过滤它。
我已通过硬编码我想要过滤的内容(例如val list2 = list1.filter(_ != "to"))成功运行此程序。显然,我想赋予它扩展的能力,所以我想学习如何配对过滤器和映射函数(如果这是正确的方法)。
提前致谢,如果我应该提供更多信息或上下文,请告诉我。
【问题讨论】:
-
list1 diff badWords -
是的,这就是我想要实现的目标
-
不要使用差异,它不会删除多个坏词实例
标签: scala filter functional-programming