Java ArrayList StringBuilder附加
我在将列表值作为字符串追加时遇到一个问题。我将在列表中输入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,
请帮我解决这个问题。谢谢-拉吉
# 1 楼答案
我会使用普通的
for
循环。最后一个附加在for循环外,不带逗号# 2 楼答案
只需删除最后一个字符:
输出
foo
更具动态性的是,您可以按索引查找最后一个逗号,并删除该逗号加上后面的任何内容:
正如Pshemo所指出的:
sb.setLength(sb.length() - 1);
实际上会比sb.deleteCharAt(sb.length() - 1)
表现更好# 3 楼答案
对于Java8,它是一个单行程序
如果在连接到单个字符串之前需要过滤列表中的元素和/或对字符串进行变异,仍然可以以非常简洁的方式完成,而不需要循环
(需要用过滤谓词和映射器替换
...
)