2010-10-17 42 views
1

我一直在我的程序中复制粘贴以下内容。我想知道你们中的任何人是否使用类似的代码,也许在图书馆中实现相同的代码。如何用逗号打印不同分隔符的列表?

@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。了解。

+1

请不要复制和粘贴代码。这将导致未来的问题。请将代码抽象为静态实用程序方法。 – 2010-10-17 20:29:05

回答

2

Apache commons在StringUtils类中提供了许多联接方法。

本页面也有很多的的最佳途径有趣的建议来实现这样的方法:http://snippets.dzone.com/posts/show/91

+1

这是在Apache公用程序郎。 Maven:http://mvnrepository.com/artifact/commons-lang/commons-lang/2.5 – simpatico 2010-10-17 19:36:06

+0

唯一可惜的是,使用它我不再控制使用哪种方法进行打印。即说我不打印一个复合toString(),但其他字符串返回方法,然后我不能使用这个。 – simpatico 2010-10-20 14:57:25

0

没有。我唯一能想到的就是将" "抽象成toString()函数的最后一个字段。我们之所以没有更好的理由是因为foreach构造不关心位置,只是它会按顺序打印。

这就是说,避免复制和粘贴不惜一切代价。根据需要制作自己的图书馆。允许它接受一个指示它是否是第一个的接口参数,并从那里开始。

+0

,因为如果我有一个元素列表,我不想要分隔符。 – simpatico 2010-10-17 18:40:30

+0

啊,got'cha。误解。 – Mike 2010-10-17 18:42:28

相关问题