В настоящее время у меня возникла странная проблема с функцией str.split()
. Во-первых here's моего кода:Android split() работает на эмуляторе, но не на устройстве
String[] seperated = content.split("<div id=\"results\" style=\"width: 175px; \">");
Log.d("seperated length", "" + seperated.length);
if(seperated.length>1){
Log.d("sep1 t2.", seperated[1]);
String[] sep2 = seperated[1].split("<div id=\"map\" ");
Log.d("sep2 t1", sep2[0]);
String[] sep3 = sep2[0].split("<div class=\"resultLine\">");
result = new String[sep3.length];
for(int i=1; i<sep3.length; i++){
String[] temp = sep3[i].split("class=\"icon1\">");
String[] temp2 = temp[1].split("<br>");
String[] temp3 = temp2[1].split("<br");
String[] temp4 = temp3[0].split("</a>");
result[i-1] = temp2[0] + " " +temp4[0];
Log.d("places", result[i-1]);
}
handler.sendEmptyMessage(0);
} else {
handler.sendEmptyMessage(1);
}
на эмуляторе результата массив генерируется без проблем, но на устройстве первого раскол терпит неудачу без ошибок или что-нибудь. Содержимое строки такое же, как у эмулятора.
Что вы подразумеваете под «неудачей без ошибок или чего-то еще»? Как вы знаете, что это не удалось, если нет ошибки? Какой видимый результат? Что вы ожидали увидеть? Продолжается ли ваша программа или она просто зависает? Что говорят ваши журналы? –
перепроверьте свое регулярное выражение. – Ran
seperated.length равно 1 после раскола (он должен равняться 2), поэтому мое приложение входит в цикл и retrys, чтобы разбить строку. единственным выходом являются мои log.d's. Выражение работает в эмуляторе, поэтому оно должно работать и на устройстве, не так ли? – user1432642