加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

用于实现Scala SeqLike的惯用方法containsAny

发布时间:2020-12-16 18:40:44 所属栏目:安全 来源:网络整理
导读:Scala的SeqLike实现了一个包含的方法.如何干净地实现containsAny功能? 假设我想知道字符串字符串是否包含黑名单中的任何列入黑名单的字符: val blacklist = List("(",")","[","]","{","}","","")string containsAny blacklist 如何干净地实施第二条线的最
Scala的SeqLike实现了一个包含的方法.如何干净地实现containsAny功能?

假设我想知道字符串字符串是否包含黑名单中的任何列入黑名单的字符:

val blacklist = List("(",")","[","]","{","}","<",">")
string containsAny blacklist

如何干净地实施第二条线的最佳方法是什么?

到目前为止我的版本看起来像这样:

(blacklist.view map string.contains) contains true

解决方法

你最好的选择是将黑名单变成一套.

val blacklist = "()[]{}<>".toSet

现在,您可以使用exists来查找字符串中是否存在任何这些字符.由于Set [T]延伸T =>布尔值,您可以直接使用该集,而不必编写显式条件.

scala> "I like fish (but not herring)" exists blacklist
res1: Boolean = true

scala> "I like fish,especially salmon!" exists blacklist
res2: Boolean = false

(注意:请注意字符串之间的区别,“我是一个字符串”和字符:’c’.一个字符的字符串是一个字符串,而不是一个字符.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读