0

在我的项目中,我需要将值动态存储在字符串中,并且需要用“,”分割该字符串。我怎样才能做到这一点 ?请帮我..

我的代码:

static ArrayList<ArrayList<String>> listhere;
ArrayList<String> arropids;
String arropids1; 


    for(int q=0;q<listhere.size();q++)
                {
                  arropids = listhere.get(q);

                  if(arropids.get(3).equals("1"))
                  {
                      arropids1 += arropids.get(0) + ","; 


                  System.out.println("arropids1"+arropids1);

                }
                } 
4

2 回答 2

2

你必须得到 NullPointerException 因为你还没有初始化字符串,将它初始化为

String arropids1="";

它将解决您的问题,但我不推荐 String 用于此任务,因为 String 是不可变类型,您可以为此目的使用 StringBuffer,因此我推荐以下代码:

static ArrayList<ArrayList<String>> listhere;
ArrayList<String> arropids;

StringBuffer buffer=new StringBuffer();

    for(int q=0;q<listhere.size();q++)
                {
                  arropids = listhere.get(q);

                  if(arropids.get(3).equals("1"))
                  {
                      buffer.append(arropids.get(0));
                      buffer.append(","); 


                  System.out.println("arropids1"+arropids1);

                }
                }

最后通过以下方式从该缓冲区中获取字符串:

 String arropids1=buffer.toString(); 
于 2012-04-14T05:01:19.417 回答
0

为了在将解析存储在 for 循环中之后拆分结果,您可以在存储的字符串上使用 split 方法并将其设置为等于这样的字符串数组:

static ArrayList<ArrayList<String>> listhere;
ArrayList<String> arropids;
String arropids1 = ""; 


for(int q=0;q<listhere.size();q++) {
              arropids = listhere.get(q);

              if(arropids.get(3).equals("1"))
              {
                  arropids1 += arropids.get(0) + ","; 


              System.out.println("arropids1"+arropids1);

              }
      }
      String[] results = arropids1.split(",");
      for (int i =0; i < results.length; i++) {
           System.out.println(results[i]);
      }

我希望这就是你要找的。

于 2012-04-14T05:07:47.960 回答