2012-06-02 7 views
0

В настоящее время у меня возникла странная проблема с функцией 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); 

      } 

на эмуляторе результата массив генерируется без проблем, но на устройстве первого раскол терпит неудачу без ошибок или что-нибудь. Содержимое строки такое же, как у эмулятора.

+0

Что вы подразумеваете под «неудачей без ошибок или чего-то еще»? Как вы знаете, что это не удалось, если нет ошибки? Какой видимый результат? Что вы ожидали увидеть? Продолжается ли ваша программа или она просто зависает? Что говорят ваши журналы? –

+0

перепроверьте свое регулярное выражение. – Ran

+0

seperated.length равно 1 после раскола (он должен равняться 2), поэтому мое приложение входит в цикл и retrys, чтобы разбить строку. единственным выходом являются мои log.d's. Выражение работает в эмуляторе, поэтому оно должно работать и на устройстве, не так ли? – user1432642

ответ

0

Используйте StringUtils.split() для разделения ваших строк вместо встроенного метода String. Тот факт, что аргумент String.split() является регулярным выражением (которое требует правильного экранирования специальных символов и т. П.), Вызывает множество ошибок.

Вы действительно не хотите вмешиваться в регулярные выражения там, вы просто хотите, чтобы строка была разделена на токены, не так ли?

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