2017-08-04 107 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

相关问题