2017-08-27 81 views
-1

我得到一個字符串輸出到這個c.getString(0)方法。我想知道如何將此輸出存儲到Java中的數組中?這個c.getString(0)方法處於while循環。每次while循環運行時,我都想將存儲在數組中的任何值用c.getString(0)方法存儲。我怎樣才能做到這一點?如何將字符串輸出存儲到Java中的數組中

private void showList() { 

    DataBaseHelper db = new DataBaseHelper(this); 
     db.open(); 
    c = db.retriveall(); 
    if (c.moveToFirst()) { 
     do { 
      Toast.makeText(MainActivity.this, 
        "_id: " + c.getString(0) + "\n", 
        Toast.LENGTH_LONG).show(); 
     } while (c.moveToNext()); 
    } 

} 

現在我顯示它是一個吐司消息。而不是顯示我想將它存儲到一個數組。請幫我

回答

1

使用ArrayList。它們是動態的,即不需要初始長度。如果需要,可以使用ArrayList.add()方法將元素添加到ArrayList,並使用ArrayList.toArray()獲取數組。 來自官方文檔here的更多信息。

0

創建一個全局變量一樣,

ArrayList<String> list = new ArrayList<String>(); 

裏面你的循環,你可以添加以下代碼,

list.add(c.getString(0)); 

以後就可以使用list.toArray()方法將其轉換成數組。

如果要按字符方式存儲String值,請使用toCharArray()方法。

0

您可以使用下面的代碼:

List<String> globalList = new ArrayList<String>(); 
private void showList() { 

DataBaseHelper db = new DataBaseHelper(this); 
    db.open(); 
c = db.retriveall(); 
if (c.moveToFirst()) { 
    do { 
     Toast.makeText(MainActivity.this, 
       "_id: " + c.getString(0) + "\n", 
       Toast.LENGTH_LONG).show(); 
     globalList.add(c.getString(0)) ; 
    } while (c.moveToNext()); 
} 

String [] a = globalList.toArray(new String[globalList.size()]); 

}

2

來存儲數據,你可以做幾件事情:如果你知道的項目數

  • 使用一個字符串數組, 。
  • 如果您不知道項目的數量,請使用字符串ArrayList。

如果您正在使用的陣列,該聲明的字符串數組,

String arr[]=new String[numberOfItems]; 

,然後每次你迭代循環寫:如果你使用的陣列

arr[position++]=c.getString(position); 

現在然後列出聲明陣列列表:

ArrayList<String> list=new ArrayList<String>(); 

和th每次迭代循環時:

list.add(c.getString(position)); 

之後,獲取元素,您可以編寫一個foreach循環。

for(String ele: list){ 
    Toast.makeText(context,ele,Toast.LENGTH_SORT).show(); 
} 
+0

P.S.在循環中生產吐司是一個非常糟糕的主意。 :P –

+0

是的。我只是舉了一個例子!雖然謝謝! –

相關問題