В Python довольно легко отобразить итеративный список через запятую:
>>> iterable = ["a", "b", "c"] >>> ", ".join(iterable) 'a, b, c'
Есть ли способ Java, близкий к этой краткости? (Обратите внимание, что в конце нет ",".)
Вот версии, использующие Гуава и 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);
Справка:
Joiner.on(String)
Гуава: Joiner.join(Iterable<T>)
Joiner.join(Iterable<T>)
Commons / Lang: StringUtils.join(Collection, String)
StringUtils.join(Collection, String)
AbstractCollection.toString() (который наследуется почти всеми коллекциями в стандартном API) в значительной степени это делает. Для массивов вы можете использовать методы Arrays.toString() (которые также работают с примитивными массивами).
AbstractCollection.toString()
Arrays.toString()
Возможно, в коллекциях Apache Commons или Google Guava есть что-то, что позволяет вам выбирать символ-разделитель и не заключать результаты в квадратные скобки.