将List值附加为String时遇到一个问题。我将在列表中获得1个或超过1个值。然后,我需要将这些字符串附加为一个字符串,并对每个字符串使用一个分隔符。但最后也增加了逗号。如何动态删除此字符串的末尾。这是我的代码:

cntList = parseXml(metadata.xml);
if (cntList.size() != 0) {
    // entryCountryMap.put(id, country);
    System.out.println("Size is  ---->" + cntList.size());
    StringBuilder sb = new StringBuilder();
    if (cntList.size() >= 2) {
        for (String s : cntList) {
            sb.append(s);
            sb.append(",");
        }
    }
    System.out.println("StringBuilder ----->" + sb.toString());
}


我的输出是这样的:

StringBuilder ----->All Countries,US - United States,


请帮我解决这个问题。谢谢-拉吉

最佳答案

使用Java 8只需一根衬纸

String.join(",", cntList);


如果需要在联接到单个字符串之前过滤列表的元素和/或对字符串进行突变,则仍然可以以非常简洁的方式来实现,而无需循环。

cntList.stream().filter(...).map(...).collect(Collectors.joining(","));


...需要用您的过滤谓词和映射器替换)

08-06 01:07