groovy if 判断字符串_Groovy:如何检查一个字符串是否包含数组的任何元素?

I have an array of strings pointAddress and I want to check each entry if it contains strings from another array, 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']

Right now I just have a giant if statement.

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++

}

}

There's gotta be a better way, right?

解决方案def valid = pointAddress.findAll { a ->

validPointTypes.any { a.contains(it) }

}

Should do it

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值