Вы получаете IndexOutOfBoundsException
, когда хотите получить доступ к индексу массива, который находится за пределами диапазона. Например:
String[] myArray = new String[10];
myArray[10] = "test"; // 10 is out of limits(0-9)
Произвел бы такое исключение. Проверьте трассировку стека для строки, из которой происходит это исключение. Он сообщает вам имя класса / имя метода / номер строки, из которой возникла эта проблема.
В вашем случае я подозреваю, что в trax
больше 10 <h2>
, поэтому вы получаете это исключение.
Изначально вы не знаете количество <h2>
, поэтому измените эту строку:
String result[] = new String[10];
с этим:
ArrayList<String> result= new ArrayList<String>();
Затем вы можете добавить элементы в этот список следующим образом:
// result[i] = trax.substring(s1+4,s2);
result.add(trax.substring(s1+4,s2));
EDIT1
Также я думаю, что вы имеете в виду это:
//trax = trax.substring(trax.indexOf("</h2>"));
trax = trax.substring(s2 + 5);
EDIT2
Также я понял, что вы неправильно распределяете массивы, вы выделяете строку из 10 символов вместо массива из 10 строк:
//String aux[] = new String[10];
String[] aux = new String[10];
//String result[] = new String[10];
String[] result = new String[10];