不要附加到Set的最后一个元素(StringBuffer)

时间:2014-08-31 14:04:22

标签: set append stringbuffer

这可能是一个简单的解决方案。我使用StringBuffer从Set(WardenSet)的所有元素创建一个String。但是我不想在最后一个元素的末尾加上逗号。这是我的代码

    sb = new StringBuffer();
    for (String s : WardenSet) {

        sb.append(s + ", ");
    }
    System.out.println(wardenInitials = sb.toString());

当前输出:MD,BH,

通缉输出:MD,BH

1 个答案:

答案 0 :(得分:0)

您必须使用显式迭代器。

sb = new StringBuffer();
Iterator it = WardenSet.iterator();
while (it.hasNext()) {
    String s = (String) it.next();
    sb.append(s);
    if (it.hasNext()) {
        sb.append(", ");
    }
}
System.out.println(wardenInitials = sb.toString());

此外,使用StringBuilder替换StringBuffer是个好主意,除非你有多个线程使用它。

如果您使用的是Java 8,则可以使用StringJoiner

System.out.println(new StringJoiner(", ").join(WardenSet).toString());

如果您正在使用Guava,则可以使用Joiner

System.out.println(Joiner.on(", ").join(WardenSet).toString());