Java 如何使用与逗号不同的分隔符打印列表?

Java 如何使用与逗号不同的分隔符打印列表?,java,string,collections,Java,String,Collections,我继续在我的程序中复制粘贴以下内容。我想知道你们中是否有人使用类似的代码,也许是在库中实现的 @Override public String toString() { String ret = prefix; boolean first = true; for (Component child : children) { if (!first) { ret += " " + separator + " "; } e

我继续在我的程序中复制粘贴以下内容。我想知道你们中是否有人使用类似的代码,也许是在库中实现的

@Override
public String toString() {
    String ret = prefix;
    boolean first = true;

    for (Component child : children) {
        if (!first) {
            ret += " " + separator + " ";
        } else {
            first = false;
        }
        ret += child.getName();
    }
    return ret + postfix;
}

PS:可以使用StringBuilder而不是String。明白了。

没有。我能想到的唯一一件事是将
抽象为
toString()
函数中的最后一个字段。我们没有更好的东西是因为
foreach
构造不关心位置,只关心它将按顺序打印


也就是说,要不惜一切代价避免复制和粘贴。如果需要,创建自己的库。允许它获取一个接口的参数,该参数指示它是否是第一个接口,并从那里开始。

Apache commons在类中提供了许多连接方法


本页还提供了许多关于实现这种方法的最佳方法的有趣建议:

,因为如果我有一个元素列表,我就不需要分隔符。它位于apache commons lang中。Maven:唯一遗憾的是,使用它我不再控制使用哪种方法打印。也就是说,假设我没有打印复合的toString(),而是打印其他字符串返回方法,那么我就不能使用它。请不要复制和粘贴代码。这将导致未来的问题。请将代码抽象为静态实用程序方法。