2011-10-31 38 views
0

昨天晚上,我寫了這個功能包含XML數據讀取所有從字符串的標籤,但東西是不正確的在這個...請幫助...這個函數返回顯示java.lang.NullPointerExceptionj2me函數java.lang.nullpointerexception - 這是什麼問題?

public void parseWebXML(String xd){ 
     int i, j, k = 0; 
     String tagn, check = ""; 
     int spos, epos; 
     byte[] len = xd.getBytes(); 
     tags = new String[len.length*3/4]; 
     int nextpos = 0; 
     for(i=0;i<len.length*3/4;i++){ 
     spos = xd.indexOf("<", nextpos); 
     epos = xd.indexOf(">", spos); 
     tagn = xd.substring(spos, epos); 
     if(i == 0 || i == 1 || i == 2){ 
      if(tagn.indexOf("/") == -1){ 
       tags[k] = "<"+tagn+">"; 
       k +=1; 
      }else{ 
       continue; 
      } 
     }else{ 
      if(tagn.indexOf("/") == -1){ 
       for(j=0;j<tags.length;j++){ 
        if(tags[i].equals(tags[j])){ 
         check = "found"; 
        }else{ 
         check = "notfound"; 
        } 
       } 
       if(check.equals("notfound")){ 
        tags[i] = "<"+tagn+">"; 
        k+=1; 
       }else{ 
        continue; 
       } 
      }else{ 
       continue; 
      } 
     } 
     nextpos = epos + 1; 
     } 
    } 

錯誤是我,而在調試模式下執行

TRACE: <at java.lang.NullPointerException: 0>, Exception caught in Display class 
java.lang.NullPointerException: 0 
- httpcon.parseWebXML(), bci=170 

回答

0

您初始化標籤[],而不是它的每一個細胞,看到這麼tags[i].equals(tags[j])可能導致NPEtags[i]爲空)。

+0

謝謝你......你的回答幫助我檢測系列中另一個功能的問題......在目前的一個......錯誤是不同的。 – Krishna

1

標籤[]只有3個項目。

if(i == 0 || i == 1 || i == 2){ 
      if(tagn.indexOf("/") == -1){ 
       tags[k] = "<"+tagn+">"; 
       k +=1; 

if i> 3 than tags [i] return null。和標籤[i] .equals扔NPE