2017-08-27 75 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

是的。我只是举了一个例子!虽然谢谢! –

相关问题