9
Tôi có một chuỗi các chuỗi pointAddress
và tôi muốn kiểm tra từng mục nhập nếu nó chứa chuỗi từ một mảng khác, validPointTypes
.Groovy: Làm cách nào để kiểm tra xem chuỗi có chứa bất kỳ phần tử nào của mảng không?
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']
Hiện tại tôi chỉ có một tuyên bố khổng lồ 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++
}
}
Có cách nào tốt hơn, đúng không?
ngọt, cảm ơn. Tôi đã đi với 'if (validPointTypes.any {pointAddress [j] .contains (it)})' vì tôi cũng đã phải loại bỏ các mục từ mảng 'pointName'. Tôi nghĩ rằng tôi cần phải sử dụng một bản đồ thay vì tất cả các mảng này. –
findAll sẽ xóa chúng khỏi kết quả cho bạn? –
Nó hoạt động hoàn hảo! Tôi chỉ cần loại bỏ mục nhập mảng pointName tương ứng. –