2015-06-09 2 views
-3
if(line.get(count).substring(line.get(count).indexOf(p1)).equals(p1.substring(0, p1.indexOf(" ")))) { 
    count++; 
    if(line.get(count).contains(p1.substring(p1.indexOf(" ") + 1, p1.length()))) 
     System.out.println((count-1) + "  " + (line.get(count-1).indexOf(p1)) + "  " + p1); 
} 

Строка - это список массивов размером 65008, я пытаюсь проверить имя на двух строках файла, причем первое имя появляется на одной строке и последнее имя появляется во второй строке. Однако индекс из связанного исключения возникает в первом случае if. Я не могу понять, если я сделал что-то не так, чтобы вызвать эту проблему, поскольку я пытался сравнить подстроки. Может кто-нибудь предложить способ решить эту проблему? Эти утверждения if довольно длинные, но я попытаюсь настроить их позже.String index out of bound exception in if statement

+0

Вы уверены, что 'line.get (count)' содержит 'p1' и что' p1' содержит '' ''? – Eran

+0

Предоставьте свой стек. –

+0

Боковое примечание: не настраивайте свой сложный код ** после ** вы потратили часы на отладку. Убедитесь, что ** легко ** читать и понимать с самого начала. Потому что тогда ... вам может не потребоваться много часов отладки и обращение к SO, чтобы получить помощь в этом. Кроме того: пожалуйста, отступите на секунду; и перечитайте свой вопрос. Вы действительно думаете, что проявляете уважение к этому сообществу, говоря: «Я знаю, мой код трудно читать, и я исправлю это позже, а пока, дорогой интернет, пожалуйста, помогите мне найти ошибку в этой уродливой части спагетти здесь » – GhostCat

ответ

0

Попробуйте использовать этот код:

 if (line.get(count).substring(line.get(count).indexOf(p1)) 
      .equals(p1.substring(0, p1.indexOf(" ")))) { 
     if (line.get(count).contains(
       p1.substring(p1.indexOf(" ") + 1, p1.length()))) { 
      System.out.println((count - 1) + "  " 
        + (line.get(count - 1).indexOf(p1)) + "  " + p1); 
     } 
     count++; 
    } 

Основное отличие состоит в том, что он увеличивает количество после того, как если условия запуска также добавлены скобки на второй, если для удобства чтения. Я не уверен, что это решит проблему, если нет, то вам может потребоваться предоставить дополнительную информацию.

Смежные вопросы