главное:Почему StringIndexOutOfBoundsException?
public static void main(String args[]){
PicParcer c = new PicParcer();
strHtml = c.getHTML(strMainLink);
links = c.poimeyArray(strHtml);
space = c.spaceDel(links);
/*
for (String strHtml1 : strHtml) {
System.out.println(strHtml);
}*/
for (String strHtml1 : links) {
System.out.println(strHtml1);
}
for (String link : space) {
System.out.println(link);
}
System.out.println(strHtml.size());
System.out.println(links.size());
}
метод getHTML;
public ArrayList<String> getHTML(String urlToRead) { //получаем сайт
ArrayList<String> html = new ArrayList<String>();
URL url;
HttpsURLConnection conn;
BufferedReader reader;
String line; /// очень нужная фигня!!!!!
try {
url = new URL(urlToRead);
conn = (HttpsURLConnection) url.openConnection();
conn.setRequestMethod("GET");
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while((line=reader.readLine()) != null) {
html.add(line);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return html;
}
public static final String strJPG = ".jpg";
public ArrayList<String> spaceDel(ArrayList<String> htmlArray){
ArrayList<String> spaceDel = new ArrayList<String>();
for(int i=0; i< htmlArray.size();i++){
spaceDel.add(htmlArray.get(i).substring(htmlArray.get(i).indexOf("/"), htmlArray.get(i).indexOf(strJPG)));
}
return spaceDel;
}
В этом примере я имею StringIndexOutOfBoundsException исключение, если я изменю strJPG (строка там) на "" или с программой try-catch работает. Что я делаю не так?
Строка Пример:
<img src="/b/thumb/88785978/14267775060770s.jpg" width="220" height="123" alt="87" class="img preview ">
<img src="/b/thumb/88785978/14267776383080s.jpg" width="220" height="123" alt="94" class="img preview ">
<img src="/b/thumb/88785978/14267776539240s.jpg" width="208" height="220" alt="32" class="img preview ">
<img src="/b/thumb/88785978/14267788646090s.jpg" width="204" height="220" alt="130" class="img preview ">
<img src="/b/thumb/88785978/14267792210110s.jpg" width="220" height="146" alt="44" class="img preview ">
<img src="/b/thumb/88785978/14267793068690s.jpg" width="220" height="123" alt="711" class="img preview ">
<img src="/b/thumb/88785978/14267794678710s.jpg" width="220" height="220" alt="54" class="img preview ">
<img src="/b/thumb/88785978/14267795607190s.jpg" width="220" height="214" alt="95" class="img preview ">
<img src="/b/thumb/88785978/14267800381730s.jpg" width="220" height="192" alt="126" class="img preview ">
<img src="/b/thumb/88785978/14267806796140s.jpg" width="220" height="124" alt="4612" class="img preview ">
<img src="/b/thumb/88785978/14267832300390s.jpg" width="150" height="109" alt="2" class="img preview ">
Вы избегаете символов в строках ??? и попытаться опубликовать основной метод –
Можете ли вы добавить код, в котором вы создаете 'htmlArray'? – Arkantos
Код примерно в 50 раз легче отлаживать, когда вы разбиваете сложные сложные команды на более мелкие шаги. Я вижу 'htmlArray.get (i)' снова и снова. Просто сделайте локальную переменную и ссылку на нее. Я бы начал с разбивки этой длинной строки кода. – ryanyuyu