Отображение списка в Java так же элегантно, как в Python - PullRequest
7 голосов
/ 08 ноября 2010

В Python довольно легко отобразить итеративный список через запятую:

>>> iterable = ["a", "b", "c"]
>>> ", ".join(iterable)
'a, b, c'

Есть ли способ Java, близкий к этой краткости? (Обратите внимание, что в конце нет ",".)

Ответы [ 2 ]

18 голосов
/ 08 ноября 2010

Вот версии, использующие Гуава и Commons / Lang , которые Майкл упоминал :

List<String> items = Arrays.asList("a","b","c");

// Using Guava
String guavaVersion = Joiner.on(", ").join(items);

// Using Commons / Lang
String commonsLangVersion = StringUtils.join(items, ", ");

// both versions produce equal output
assertEquals(guavaVersion, commonsLangVersion);

Справка:

5 голосов
/ 08 ноября 2010

AbstractCollection.toString() (который наследуется почти всеми коллекциями в стандартном API) в значительной степени это делает. Для массивов вы можете использовать методы Arrays.toString() (которые также работают с примитивными массивами).

Возможно, в коллекциях Apache Commons или Google Guava есть что-то, что позволяет вам выбирать символ-разделитель и не заключать результаты в квадратные скобки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...