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"