2017-08-04 139 views
1

在我的應用程序中,我希望使用此Library來顯示ArrayList項目。
我從服務器的ArrayList:如何在Array的每個元素的末尾添加逗號

"genres": [ 
     "Action", 
     " Comedy", 
     " Family" 
    ] 

我下面寫的代碼顯示的項目:

private String[] mostlyMatchedKeywordsStrings; 
    private List<String> cloudChipList = new ArrayList<>(); 
mostlyMatchedKeywordsStrings = serialResponse.getData().getGenres(); 
       for (String str : mostlyMatchedKeywordsStrings) { 
        cloudChipList.add(str); 
        if (cloudChipList.size() > 0) { 
         infoSerialFrag_GenreChips.addChip(str); 
        } 
       } 

告訴我像這樣:

Ganre:動作喜劇家庭

但我想告訴我像這樣:

Ganre:動作,喜劇,家庭

+1

您的顯示代碼在哪裏顯示類型 –

+4

類似['String.join'](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join -java.lang.CharSequence-java.lang.Iterable-)? – litelite

回答

0

一般來說,你可以做到以下幾點:

String[] items = { "Foo", "Bar" }; 
StringBuilder result = new StringBuilder(); 
for(int i = 0; i < items.length;) { 
    result.append(items[i]); 

    if(++i < items.length) 
     result.append(", "); 
} 
String str = result.toString(); // "Foo, Bar" 

這是ArrayLists也是如此,但是您將list.get(i)而不是items[i]

ArrayList<String> list= new ArrayList<String>(); 
list.add("Foo"); list.add("Bar"); 
StringBuilder result = new StringBuilder(); 
for(int i = 0; i < list.size();) { 
    result.append(list.get(i)); 

    if(++i < list.size()) 
     result.append(", "); 
} 
String str = result.toString(); // "Foo, Bar" 
+0

在循環中間增加'i'(並且在if的條件下)使它更難理解它應該是 – litelite

+0

是的,但它可能更快。您也可以在循環的頂部增加'i',並在if語句中使用'i Professor901

+0

我不明白它怎麼可能比把它放在循環的頂部更快。另外,'i ++'返回增量前的值,所以你的'if'相當於比較'i'和**然後**遞增。 https://stackoverflow.com/a/2315717/3072566 – litelite

4

您正在尋找String.join()

List<String> foo = new ArrayList<>(); 
foo.add("foo"); 
foo.add("bar"); 
foo.add("baz"); 
System.out.println(String.join(", ", foo)); 
1

您可以轉換爲List和使用String.join(", ", list),或者你可以使用一個StringJoiner

StringJoiner sj = new StringJoiner(", "); 
for (String s : mostlyMatchedKeywordsStrings) { 
    sj.add(s); 
} 
String joined = sj.toString(); 

注意,這需要Java 8;如果您使用的是Java < 8,則必須執行類似於Professor901的答案。

+0

你可以編輯你的答案,併發送給我完整的代碼與我的上述代碼?請 – Jong

相關問題