Java: Convert List<Integer> to String

Java

Java Problem Overview


How can I convert List<Integer> to String? E.g. If my List<Integer> contains numbers 1 2 and 3 how can it be converted to String = "1,2,3"? Every help will be appreciated.

Java Solutions


Solution 1 - Java

I think you may use simply List.toString() as below:

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]

If you don't want [] in the string, simply use the substring e.g.:

   listString = listString.substring(1, listString.length()-1); 
   System.out.println(listString); //<- this prints 1, 2, 3

Please note: List.toString() uses AbstractCollection#toString method, which converts the list into String as above

Solution 2 - Java

With Guava:

String s = Joiner.on(',').join(integerList);

Solution 3 - Java

In vanilla Java 8 (streams) you can do

// 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"

Solution 4 - Java

One way would be:

Iterate over list, add each item to StringBuffer (or) StringBuilder and do toString() at end.

Example:

StringBuilder strbul  = new StringBuilder();
     Iterator<Integer> iter = list.iterator();
     while(iter.hasNext())
     {
         strbul.append(iter.next());
        if(iter.hasNext()){
         strbul.append(",");
        }
     }
 strbul.toString();

Solution 5 - Java

Just to add another (of many) options from a popular library (Apache Commons):

import org.apache.commons.lang3.StringUtils;

String joinedList = StringUtils.join(someList, ",");

See documentation: https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#join-java.lang.Iterable-java.lang.String-


An elegant option from others' comments (as of Java 8):

String joinedList = someList.stream().map(String::valueOf).collect(Collectors.joining(","));

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMartinView Question on Stackoverflow
Solution 1 - JavaYogendra SinghView Answer on Stackoverflow
Solution 2 - JavaJB NizetView Answer on Stackoverflow
Solution 3 - JavaHemmelsView Answer on Stackoverflow
Solution 4 - JavakosaView Answer on Stackoverflow
Solution 5 - JavaMuffinTheManView Answer on Stackoverflow