Возможные дубликаты:
Что лучший способ состоит в том, чтобы создать строку разграниченных объектов в Java?
Java: преобразуйте Список <Строка> в соединение () струна реВ Java, учитывая набор, получая итератор и делая отдельный случай для первого (или в последний раз) отделились элемент и остальные для получения запятой, строка кажется довольно тусклой, есть ли что-то как
str.join
в Python?Дополнительное разъяснение для предотвращения его закрываемый как дубликат: я не пользовался бы внешними библиотеками как Apache палата общин.
Спасибо!
обновите спустя несколько лет после этого...
Нет. Такого метода нет. Как и многие другие, я делал свои версии такого соединения для массивов строк и коллекций (итераторов).
Нет, нет. Вот моя попытка:
/**
* Join a collection of strings and add commas as delimiters.
* @require words.size() > 0 && words != null
*/
public static String concatWithCommas(Collection<String> words) {
StringBuilder wordList = new StringBuilder();
for (String word : words) {
wordList.append(word + ",");
}
return new String(wordList.deleteCharAt(wordList.length() - 1));
}
Компромиссное решение между отказом от написания лишнего кода "utils" и неиспользованием внешних библиотек, которые я Нашел следующий двухстрочный :
/* collection is an object that formats to something like "[1, 2, 3...]"
(as the case of ArrayList, Set, etc.)
That is part of the contract of the Collection interface.
*/
String res = collection.toString();
res = res.substring(1, res.length()-1);
Нет в стандартной библиотеке. Она находится в StringUtils из commons lang.
В стандартной библиотеке ничего нет, но в Guava, например, есть Joiner
который делает это.
Joiner joiner = Joiner.on(";").skipNulls(); . . . return joiner.join("Гарри", null, "Рон", "Гермиона"); // возвращает "Гарри; Рон; Гермиона"
Однако вы всегда можете написать свой собственный, используя StringBuilder
.