2013-12-20 43 views
0

有一個txt文件,看起來像:Android的分裂功能的行爲

enter image description here

它是由一個分隔符分裂「:」好:

  temp = strLine.split(":"); 

      ContentValues initialValues = new ContentValues(); 

      initialValues.put(TITLE, temp[0].trim()); 
      initialValues.put(DESCRIPTION, temp[1].trim()); 
      initialValues.put(GROUP, temp[2].trim()); 
      initialValues.put(COL1, temp[3].trim()); 
      initialValues.put(COL2, temp[4].trim()); 
      initialValues.put(COL3, temp[5].trim()); 
      initialValues.put(ADDRESS, temp[6].trim()); 

      db.insert(DATABASE_TABLE, null, initialValues); 
     } 

正如你可以看到這個劇本填充數據庫。之後,我正在顯示從數據庫中檢索的數據列表。

但當.TXT不包含數據的地址欄:

enter image description here

然後插入函數返回「ArrayIndexOutOfBoundsException異常」,光標變成零。

數據庫在ADDRESS列中沒有空,所以如何在中解決這個問題initialValues.put(ADDRESS,temp [6] .trim());

你能提出什麼建議?由於

+0

你有任何大小的臨時數組定義? – Sharmilee

+0

Just String [] temp; –

+0

它顯而易見,它會拋出ArrayIndexOutOfBoundsException當地址將爲空 – Sharmilee

回答

1
// try to replace this line 
initialValues.put(ADDRESS, temp.length>6 ? temp[6].trim():""); 
+0

謝謝,但爲什麼temp .length> 6? (爲什麼正好6)? –

+1

因爲你的地址字段在7的位置,如果你沒有地址,那麼你的拆分數組的大小必須小於7,你有檢查是否大小更粗,然後6 .... –

+0

嗨,你可以PLZ upvote ans如果它對你有用謝謝... –

0

你可以把條件地址

temp = strLine.split(":"); 

    ContentValues initialValues = new ContentValues(); 

    initialValues.put(TITLE, temp[0].trim()); 
    initialValues.put(DESCRIPTION, temp[1].trim()); 
    initialValues.put(GROUP, temp[2].trim()); 
    initialValues.put(COL1, temp[3].trim()); 
    initialValues.put(COL2, temp[4].trim()); 
    initialValues.put(COL3, temp[5].trim()); 


    if(temp.length==7) 
    { 
     initialValues.put(ADDRESS, temp[6].trim()); 
    } 
    else 
    { 
     initialValues.put(ADDRESS, ""); 
    } 
    db.insert(DATABASE_TABLE, null, initialValues);