检查是否在列表中的值是字符串的一部分(Checking if values in List is p

2019-08-31 08:44发布

我有一个这样的字符串:

val a = "some random test message"

我有一个这样的名单:

val keys = List("hi","random","test")

现在,我要检查字符串是否a包含所有值keys 。 我们如何利用这个做Scala中的建库函数?

(我知道分裂的方式a列出,然后做一个检查keys列表,然后找到解决方案。但我正在寻找解决它更简单地使用标准库函数的方式。)

Answer 1:

像这样的事情?

keys.exists(a.contains(_)) 

甚至更地道

keys.exists(a.contains)


Answer 2:

简单的情况是测试遏制子串(如在评论rarry的答案),例如

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方法通常线性地扫描整个列表,直到找到匹配或到达终点。

对于较大的物品的数量,一组不仅较好,而且是信息更真实地再现。 集通过散列码等通常优化,并因此需要较少的线性搜索 - 或根本没有。



文章来源: Checking if values in List is part of String