Ну, это состояние выглядит хитрым:
if (ide.length > 0 && prod.length > 0
&& ide[1].trim().equalsIgnoreCase(prod[1].trim())) {
Вы проверяете, есть ли хотя бы один элемент в каждом, но вы используете второй элемент в каждом.
Трудно сказать, чего вы пытаетесь достичь, но я подозреваю, что вы либо хотите изменить условия length
, либо индексы массива. Я также разделил бы этот метод на более короткие и, возможно, для ясности создал бы статические переменные с именами со ссылками на Pattern
объекты, для ясности ...
РЕДАКТИРОВАТЬ: Если вы действительно хотите использовать второй элемент из каждого массива, я бы предложил:
if (ide.length > 1 && prod.length > 1
&& ide[1].trim().equalsIgnoreCase(prod[1].trim())) {