Java: преобразовать список <целое число> в строку
Как преобразовать List<Integer> to String
? Например. Если my List<Integer>
содержит числа 1 2 и 3, как его можно преобразовать в String = "1,2,3"? Каждая помощь будет оценена по достоинству.
Ответы
Ответ 1
Один из способов:
Iterate
по списку, добавьте каждый элемент в StringBuffer
(или) StringBuilder
и сделайте toString()
в конце.
Пример:
StringBuilder strbul = new StringBuilder();
Iterator<Integer> iter = list.iterator();
while(iter.hasNext())
{
strbul.append(iter.next());
if(iter.hasNext()){
strbul.append(",");
}
}
strbul.toString();
Ответ 2
С Guava:
String s = Joiner.on(',').join(integerList);
Ответ 3
Я думаю, вы можете просто использовать List.toString()
, как показано ниже:
List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);
String listString = intList.toString();
System.out.println(listString); //<- this prints [1, 2, 3]
Если вы не хотите []
в строке, просто используйте подстроку, например:
listString = listString.substring(1, listString.length()-1);
System.out.println(listString); //<- this prints 1, 2, 3
Обратите внимание: List.toString()
использует метод AbstractCollection#toString
, который преобразует список в String, как указано выше
Ответ 4
Просто чтобы добавить еще один (из многих) вариантов из популярной библиотеки (Apache Commons):
import org.apache.commons.lang3.StringUtils;
String joinedList = StringUtils.join(someList, ",");
См. Документацию: https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#join-java.lang.Iterable-java.lang.String-.
Элегантный вариант из комментариев других (по состоянию на Java 8):
String joinedList = someList.stream().map(String::valueOf).collect(Collectors.joining(","));
Ответ 5
В ванильной Java 8 (потоки) вы можете сделать
// Given numberList is a List<Integer> of 1,2,3...
String numberString = numberList.stream().map(String::valueOf)
.collect(Collectors.joining(","));
// numberString here is "1,2,3"