我有一个这样的字符串:
val a = "some random test message"
我有一个这样的列表:
val keys = List("hi","random","test")
现在,我想检查字符串是否a
包含来自keys
. 我们如何使用 Scala 的内置库函数来做到这一点?
(我知道拆分a
到 List 的方式,然后用keys
list 进行检查,然后找到解决方案。但我正在寻找一种更简单地使用标准库函数来解决它的方法。)
像这样的东西?
keys.exists(a.contains(_))
或者更惯用的说法
keys.exists(a.contains)
简单的情况是测试子字符串包含(如rarry
's answer 中所述),例如
keys.exists(a.contains(_))
你没有说你是否真的想找到整个单词匹配。由于rarry
' 的答案假设你没有,这里有一个假设你这样做的替代方案。
val a = "some random test message"
val words = a.split(" ")
val keys = Set("hi","random","test") // could be a List (see below)
words.exists(keys contains _)
请记住,键列表仅对小列表有效。对于列表,该contains
方法通常线性扫描整个列表,直到找到匹配项或到达末尾。
对于大量项目,集合不仅更可取,而且更真实地表示信息。集合通常通过哈希码等进行优化,因此需要较少的线性搜索 - 或者根本不需要。