在Groovy中检查数组的任何元素是否包含指定的字符串

在Groovy中检查数组的任何元素是否包含指定的字符串,groovy,Groovy,我发现它很好地描述了如何比较两个数组。但是,如果我有一些用户给定的输入字符串,比如“20394875apple29038475”或“我爱苹果”,并且我想检查字符串数组中的任何字符串是否存在于用户给定的字符串中,而不考虑大小写,我如何在groovy中做到这一点 让我们想象一下,我们正在检查的字符串数组中有诸如(“苹果”、“香蕉”、“樱桃”)之类的水果 在本例中,我们将返回true,因为子字符串“apple”存在于用户给定的字符串“20394875apple29038475”中 。。。我想最好的办法

我发现它很好地描述了如何比较两个数组。但是,如果我有一些用户给定的输入字符串,比如“20394875apple29038475”或“我爱苹果”,并且我想检查字符串数组中的任何字符串是否存在于用户给定的字符串中,而不考虑大小写,我如何在groovy中做到这一点

让我们想象一下,我们正在检查的字符串数组中有诸如(“苹果”、“香蕉”、“樱桃”)之类的水果

在本例中,我们将返回true,因为子字符串“apple”存在于用户给定的字符串“20394875apple29038475”中

。。。我想最好的办法是这样的:

boolean fruitFound = false

for (item in fruitArray){
    if(usrResponse.contains(item)){
        responseFound = true
    }
选中此项:

def fruits = ["apple","banana","cherry"]
def str = '20394875banana29038475'
assert fruits.findAll{str.contains(it)}.any{true}
编辑:忽略大小写

assert fruits.findAll{str.toLowerCase().contains(it.toLowerCase())}.any{true}


可能重复-同样的答案适用。实际上这是一个不同的问题,因为我们没有比较两个不同的数组,也没有试图忽略字符串@doelleriThanks@Rao的大小写。这也会忽略吗?因此,如果用户在“苹果”中键入,它还会找到与“我爱一个好苹果”的水果数组元素相匹配的吗?谢谢@Admiral_x,这也会忽略不计吗?因此,如果用户在“ApPLe”中键入,它还会找到与“我爱一个好苹果”的水果数组元素匹配的吗?不客气,不,它区分大小写,您可以执行如下操作:水果数组。任意{usrResponse.toLowerCase().contains(it.toLowerCase())}要将所有字符串转换为小写,还可以确定ArrayList是否包含任何关键字。即,检查
['a',b',c']
中是否包含
'a'
e
['a',b',c'].。任何{['a',e'].包含(it}
assert fruits*.toLowerCase().findAll{str.toLowerCase().contains(it)}.any{true}
fruitFound = fruitArray.any{usrResponse.contains(it)}