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

Пожалуйста, не копировать код. Это приведет к проблемам в будущем. Сообщите код в статическую утилиту, пожалуйста. –

ответ

2

Apocal commons предоставляет ряд методов соединения в классе StringUtils.

На этой странице также есть много интересных предложения по лучшему способу реализации такого способа: http://snippets.dzone.com/posts/show/91

+1

Это в apache commons lang. Maven: http://mvnrepository.com/artifact/commons-lang/commons-lang/2.5 – simpatico

+0

Жаль только, что с его помощью я больше не могу контролировать, какой метод используется для печати. То есть скажем, я не печатаю toString() Composite, а другой метод возврата String, тогда я не могу использовать это. – simpatico

0

Nope. Единственное, о чем я могу думать, это абстрактное то, что " " прочь в конечное поле в функции toString(). Причина в том, что у нас нет ничего приятного, потому что конструкция foreach не заботится о позиции, только то, что она будет печататься последовательно.

При этом избегайте копирования и вставки любой ценой. При необходимости создайте свою собственную библиотеку. Позвольте ему принять параметр интерфейса, который указывает, является ли он первым, и оттуда.

+0

потому что, если у меня есть список элементов, я не хочу разделителя. – simpatico

+0

Ах, got'cha. Неправильно. – Mike

Смежные вопросы