2013-07-03 185 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