2013-07-03 152 views
0

你好老乡程序员,转换ArrayList的内容转换为字符串用逗号

在我的应用我只是从一个文本文件反序列化一个ArrayList,现在我有一个字符串的ArrayList。出于设计目的,我想将ArrayList的内容放入一个带有逗号和空格的有组织的字符串中。

我做出了尝试它,但他应用程式forcecloses和logcat中精确定位的错误此代码:

FYI:OptionsText是一个空字符串,ListOptions与字符串的ArrayList。

public void getOptionsText(){ 
     int i; 
     OptionsText=ListOptions.get(1); 
     for(i=2; i<ListOptions.size(); i++){ 
      OptionsText = OptionsText + ", " + ListOptions.get(i); 
     } 
     Options.setText(OptionsText); 
    } 

回答

1

只需使用ArrayList#toString()

public void getOptionsText() { 
    String OptionsText = ListOptions.toString(); 
    Options.setText(OptionsText.substring(1, OptionsText.length-1); 
} 
+0

这假定'ListOptions'是一个'ArrayList'。如果'ListOptions'是一个'List'呢?由于List实现是未知的(“编程接口”),最好使用'Arrays.toString'。 –

+0

@SteveKuo不是真的。它假设'ListOptions'是一个'AbstractCollection',[一个抽象类,几乎每个Java SE集合实现都继承。](http://docs.oracle.com/javase/7/docs/api/java/util/ AbstractCollection.html)当然,一个细木工(Guava/Apache Commons/other)会工作;所以会用手写的方法。使用_different_'toString()'输出格式向我展示现有的库实现;那么,我们会谈谈。 –

0

可以请你试试这个...检查列表不是空...

list.toString().replace("[", "").replace("]", ""); 
+0

马特球答案也将工作:) –

+0

这实际上是比我的答案,在性能和正确性。如果列表的字符串形式的其中一个元素包含''[''或'']''? –

+0

是的,我同意......谢谢 –

0

比同行给出其他答案其他SO用户,也可以使用org.apache.commons.langStringUtils类中的join方法。

OR

Joinerjoin方法从com.google.common.base