arrays - Groovy:如何检查字符串是否包含数组的任何元素?

标签 arrays string groovy

我有一个字符串数组 pointAddress,我想检查每个条目是否包含来自另一个数组 validPointTypes 的字符串。

def pointAddress = ['bacnet://240101/AV:3', 'bacnet://240101/BV:9', 'bacnet://240101/AV:7', 'bacnet://240101/BALM:15']
def validPointTypes = ['AV', 'AI', 'AO', 'ANI', 'ANO', 'BV', 'BI', 'BO', 'BNI', 'BNO']

现在我只有一个巨大的 if 语句。

j = pointName.size()
for(j=j-1; j>=0;j--) {
    if(pointAddress[j]) {
        if(pointAddress[j].contains('AV') || pointAddress[j].contains('AI') || 
            pointAddress[j].contains('AO') || pointAddress[j].contains('ANI') || 
            pointAddress[j].contains('ANO') || pointAddress[j].contains('BV') || 
            pointAddress[j].contains('BI') || pointAddress[j].contains('BO') || 
            pointAddress[j].contains('BNI') || pointAddress[j].contains('BNO')) {
        } else {
            pointAddress.remove(j)
            pointName.remove(j)
            m++
        }
    } else {
        pointName.remove(j)
        m++
    }
}

一定有更好的方法,对吧?

最佳答案

def valid = pointAddress.findAll { a ->
    validPointTypes.any { a.contains(it) }
}

应该这样做

关于arrays - Groovy:如何检查字符串是否包含数组的任何元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27069701/

相关文章:

javascript - ES6实现这个功能?

来自字节[]的JAVA : How to create . PNG图像?

javascript - 如何使用es6的filter或reduce来破坏对象属性?

string - 为什么从标准输入读取用户输入时我的字符串不匹配?

unit-testing - 如何在Spock单元测试Grails中测试catch block 代码

grails - 对表达的错误评估

java - 将值添加到具有固定长度的 Java 数组

C 中字符串中特定字母的大写

python - 从 Python 中的除法中打印 %

android - java.io.IOException:无法运行程序 “dx”:error = 2,没有这样的文件或目录