如何在ArrayList中的每个元素的末尾添加逗号在Android上

时间:2017-08-05 05:43:31

标签: android arraylist

在我的应用程序中,我想将此Library用于显示ArrayList个项目 来自服务器的我的ArrayList:

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

我在下面为show items编写代码:

private String[] mostlyMatchedKeywordsStrings = serialResponse.getData().getGenres();
private List<String> cloudChipList = new ArrayList<>();

for (String str : mostlyMatchedKeywordsStrings) {
    cloudChipList.add(str);

    if (cloudChipList.size() > 0) {
       infoSerialFrag_GenreChips.addChip(str);
    }
}

将oputput视为:

  

Ganre:动作喜剧家庭

但我想这样:

   Ganre:动作,喜剧,家庭

请帮我处理上述代码,我很业余,需要此帮助,请帮我处理上述代码。谢谢所有&lt; 3

5 个答案:

答案 0 :(得分:3)

你可以尝试使用for循环这样:

已编辑:

private String[] mostlyMatchedKeywordsStrings;
    private List<String> cloudChipList = new ArrayList<>();

    mostlyMatchedKeywordsStrings = serialResponse.getData().getGenres();

    for (String str : mostlyMatchedKeywordsStrings) {
        cloudChipList.add(str);
    }
    if (cloudChipList.size() > 0) {
        for (int i = 0; i < cloudChipList.size(); i++) {

            if (i == (cloudChipList.size() - 1)) //true only for last element
                infoSerialFrag_GenreChips.add(cloudChipList.get(i));

            else
                infoSerialFrag_GenreChips.add(cloudChipList.get(i) + ","); //this will execute for 1st to 2nd last element
        }
    }

答案 1 :(得分:1)

使用TextUtils.join(",", yourList);

答案 2 :(得分:0)

使用旧的Java 6方式并自己添加逗号,除非它是列表中的最后一个元素。

请参阅以下示例:

private String[] mostlyMatchedKeywordsStrings = serialResponse.getData().getGenres();
private List<String> cloudChipList = new ArrayList<>();

for (int i = 0; i < mostlyMatchedKeywordsStrings.length; i++) {

    String str = mostlyMatchedKeywordsStrings[i];

    if (i + 1 < mostlyMatchedKeywordsStrings.length) str = str + ", ";

    cloudChipList.add(str);

    if (cloudChipList.size() > 0) {
       infoSerialFrag_GenreChips.addChip(str);
    }
}

答案 3 :(得分:0)

  

java.util.ArrayList.add(int index,E elemen)方法插入   指定的元素E在此列表中的指定位置。它会移位   当前位于该位置的元素(如果有)以及任何后续元素   右侧的元素(将在其索引中添加一个)。

<强>被修改

 if (cloudChipList.size() > 0) 
 {
        if(cloudChipList.get(cloudChipList.size()-1).contains(","))
        {
            infoSerialFrag_GenreChips.add(str);
        }
        else
        {
            infoSerialFrag_GenreChips.add(str+",");
        } 
 }  

OP将

   Ganre:动作,喜剧,家庭

答案 4 :(得分:0)

虽然已经很晚了,但是如果其他人来到这个话题就行了...... 如果您使用的是Java 8,则可以使用以下流式传输器和收集器接口:

List<String> cloudChipList = new ArrayList<String>();
    cloudChipList.add("Action");
    cloudChipList.add("Comedy");
    cloudChipList.add("Family");

    String result = cloudChipList.stream().collect(Collectors.joining(" , ", "Genre: ", "\n"));
    System.out.println(result);

这里Collectors.joining为结果添加了分隔符,前缀和后缀,但它也有一个只带分隔符的选项。