【问题标题】:How to store stringbuffer into string array?如何将字符串缓冲区存储到字符串数组中?
【发布时间】:2015-05-14 15:33:57
【问题描述】:

您好,我正在读取 sqlite db 数据并将其存储到字符串缓冲区中。我想在android的列表视图中显示它。我面临小问题。请帮我解决这个问题。

String studentno=cursor.getString(1);
String date=cursor.getString(2);
buffer.append("student: "+studentno+"  Time:"+date+"\n");
String data=buffer.toString();
Log.d("student: "+studentno+"  Time:"+date);

输出为:student: 1234 Time:12:13 student: 1234 Time:12:14 student: 1234 Time:12:15

我想像这样存储字符串缓冲区 values[0]=student: 1234 Time:12:13 values[1]=student: 1234 Time:12:14 values[2]=student: 1234 Time:12:15

我尝试了下面的编码,但它不起作用。

String[] values = data.split("");
for (int i = 0; i < values.length; ++i) {
list.add(values[i]);
}

有没有办法做到这一点。提前致谢。

【问题讨论】:

    标签: java arrays sqlite android-listview stringbuffer


    【解决方案1】:

    您似乎正在将数据添加到最后带有新行分隔符的缓冲区中。拆分它们应该如下所示:data.split("\n");

    但是,这似乎不是一个好主意。主要是因为您可以拥有非常大的数据集,而拆分是一项昂贵的操作。

    为什么不创建一个ArrayList&lt;String&gt; 并调用list.add("student: " + studentno + " Time: " + date) 或其他更高效的结构?

    代码:

    List<String> list = new ArrayList<String>();
    
    String studentno=cursor.getString(1);
    String date=cursor.getString(2);
    list.add("student: " + studentno + " Time: " + date);
    

    【讨论】:

      【解决方案2】:

      这毫无意义。如果要将数据存储在数组中,首先不要将其存储在StringBuffer 中。直接存储在数组中。

      你必须有一些循环来读取数据:

      String[] arr = new String [...];
      int count = 0;
      while (cursor.next() && count < arr.length) {
          String studentno=cursor.getString(1);
          String date=cursor.getString(2);
          arr[count] = "student: "+studentno+"  Time:"+date+"\n";
          count++;
      }
      

      【讨论】:

      • 你怎么能详细解释我。我用 data.split("\n");它现在正在工作 Eran。
      • 它的工作伊兰。但我不知道字符串数组的大小。我们不能给出预定义的大小。我们不知道有多少数据会来自 db。我怎样才能给出动态大小。如果我错了,请纠正我。
      • @subramaniam 在这种情况下,您可以将数据添加到 ArrayList(其容量是动态的),然后使用 toArray 方法转换为数组。
      • @Eran 我有同样的问题你能解决它吗 plz.......stackoverflow.com/questions/40948014/…
      【解决方案3】:

      您可以尝试将拆分呼叫替换为:

      String[] values = data.split("\n");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-10
        • 1970-01-01
        • 2013-09-24
        相关资源
        最近更新 更多