Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Groovy: How to check if a string contains any element of an array?

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?

like image 445
User001 Avatar asked Nov 21 '14 20:11

User001


People also ask

How do I check if a string contains an element in an array?

You can use the includes() method in JavaScript to check if an item exists in an array. You can also use it to check if a substring exists within a string. It returns true if the item is found in the array/string and false if the item doesn't exist.

How do you check if an array contains a value in groovy?

Groovy - Lists contains() Returns true if this List contains the specified value.

How do I check if a string contains something?

The includes() method returns true if a string contains a specified string. Otherwise it returns false .


1 Answers

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

Should do it

like image 86
tim_yates Avatar answered Sep 23 '22 20:09

tim_yates