2010-10-17 43 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

相關問題