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

groovy – 如何检查字符串数组的子字符串是否与其他字符串数组中

发布时间:2020-12-14 16:28:31 所属栏目:大数据 来源:网络整理
导读:我想知道是否有任何groovy方法来检查字符串的子串是否与模式匹配. 例如,我有字符串List(或数组): def Errors = [‘无法创建文件xyz:设备上没有剩余空间’,’文件kjh有错误:some_error’] 然后我有字符串列表,例如def Patterns = [‘Tests failed’,’设备
我想知道是否有任何groovy方法来检查字符串的子串是否与模式匹配.

例如,我有字符串List(或数组):

def Errors = [‘无法创建文件xyz:设备上没有剩余空间’,’文件kjh有错误:some_error’]

然后我有字符串列表,例如def Patterns = [‘Tests failed’,’设备上没有剩余空间’,’出错了’,……一些字符串…]

我想检查List Patterns的某些元素是否是Errors元素的子字符串.

在该示例中,它应该返回true,因为模式在设备上没有剩余空间并且错误具有’无法创建文件xyz:设备上没有剩余空间’.

我知道如何通过使用两个for循环和方法包含来编写它非常有用且效率不高,但我知道Groovy有更强大的内置方法.我尝试过findAll(),但它根本不起作用.

你有什么想法?有没有办法让它更聪明?

解决方法

明确命名模式和错误:

patterns.find { pattern -> errors.find { error -> error.contains(pattern) } }  // -> No space left on device
patterns.any { pattern -> errors.find { error -> error.contains(pattern) } } // -> true

取决于你想要找到的数量/数量.

甚至更短:

patterns.find { errors.find { error -> error.contains(it) } }
patterns.any { errors.find { error -> error.contains(it) } }

(编辑:李大同)

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

    推荐文章
      热点阅读