Java 8 – Converting a List to String with Examples
A quick guide to convert List to String in java using different methods and apache commons api with examples.
1. Overview
In this tutorial, we will learn how to convert List to String in java with example programs.
This conversion is done with the simple steps with java api methods.
First, we will understand how to make List to String using toString() method.
Next, Collection to String with comma separator or custom delimiter using Java 8 Streams Collectors api and
String.join() method.
Finally, learn with famous library apache commands StringUtils.join() method.
For all the examples, input list must be a type of String as List<String> otherwise we need to convert the non string to String. Example, List is type of Double then need to convert then double to string first.
2. List to String Using Standard toString() method
List.toString() is the simplest one but it adds the square brackets at the start and end with each string is separated with comma separator.
The drawback is that we can not replace the comma with another separator and can not remove the square brackets.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package com.javaprogramto.convert.list2string; import java.util.Arrays; import java.util.List; /** * Example to convert List to string using toString() method. * * @author javaprogramto.com * */ public class ListToStringUsingToStringExample { public static void main(String[] args) { // creating a list with strings. List<String> list = Arrays.asList( "One" , "Two" , "Three" , "Four" , "Five" ); // converting List<String> to String using toString() method String stringFromList = list.toString(); // priting the string System.out.println( "String : " +stringFromList); } } |
Output:
1 | String : [One, Two, Three, Four, Five] |
3. List to String Using Java 8 String.join() Method
The above program works before java 8 and after. But, java 8 String is added with a special method String.join() to convert the collection to a string with a given delimiter.
The below example is with the pipe and tilde separators in the string.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import java.util.Arrays; import java.util.List; /** * Example to convert List to string using String.join() method. * * @author javaprogramto.com * */ public class ListToStringUsingString_JoinExample { public static void main(String[] args) { // creating a list with strings. List<String> list = Arrays.asList( "One" , "Two" , "Three" , "Four" , "Five" ); // converting List<String> to String using toString() method String stringFromList = String.join( "~" , list); // priting the string System.out.println( "String with tilde delimiter: " +stringFromList); // delimiting with pipe | symbol. String stringPipe = String.join( "|" , list); // printing System.out.println( "String with pipe delimiter : " +stringPipe); } } |
Output:
1 2 | String with tilde delimiter: One~Two~Three~Four~Five String with pipe delimiter : One|Two|Three|Four|Five |
4. List to String Using Java 8 Collectors.joining() Method
Collectors.join() method is from java 8 stream api. Collctors.joining() method takes delimiter, prefix and suffix as arguments. This method converts list to string with the given delimiter, prefix and suffix.
Look at the below examples on joining() method with different delimiters. But, String.join() method does not provide the prefix and suffix options.
If you need a custom delimiter, prefix and suffix then go with these. If you do not want the prefix and suffix then provide empty string to not to add any before and after the result string.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * Example to convert List to string using Collectors.joining() method. * * @author javaprogramto.com * */ public class ListToStringUsingString_JoinExample { public static void main(String[] args) { // creating a list with strings. List<String> list = Arrays.asList( "One" , "Two" , "Three" , "Four" , "Five" ); // using java 8 Collectors.joining with delimiter, prefix and suffix String joiningString = list.stream().collect(Collectors.joining( "-" , "{" , "}" )); // printing System.out.println( "Collectors.joining string : " +joiningString); String joiningString3 = list.stream().collect(Collectors.joining( "@" , "" , "" )); // printing System.out.println( "Collectors.joining string with @ separator : " +joiningString3); } } |
Output:
1 2 | Collectors.joining string : {One-Two-Three-Four-Five} Collectors.joining string with @ separator : One @Two @Three @Four @Five |
5. List to String Using Apache Commons StringUtils.join() method
Finally way is using external library from apache commons package. This library has a method
StringUtils.join() which takes the list and delimiter similar to the String.join() method.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import org.apache.commons.lang3.StringUtils; /** * Example to convert List to string using apache commons stringutils.join() method. * * @author javaprogramto.com * */ public class ListToStringUsingStringUtils_JoinExample { public static void main(String[] args) { // creating a list with strings. List<String> list = Arrays.asList( "One" , "Two" , "Three" , "Four" , "Five" ); // using java 8 Collectors.joining with delimiter, prefix and suffix String joiningString = StringUtils.join(list, "^" ); // printing System.out.println( "StringUtils.join string with ^ delimiter : " +joiningString); String joiningString3 = StringUtils.join(list, "$" ); // printing System.out.println( "StringUtils.join string with @ separator : " +joiningString3); } } |
Output:
1 2 | StringUtils.join string with ^ delimiter : One^Two^Three^Four^Five StringUtils.join string with @ separator : One$Two$Three$Four$Five |
6. Conclusion
In this article, we’ve seen how to convert List to String in java using different methods before and after java 8.
It is good to use the String.join() method for a given delimiter to produce the string from List.
or If you want to add a prefix or suffix then use stream api Collectors.joining() method with delimiter, prefix and suffix values.
Published on Java Code Geeks with permission by Venkatesh Nukala, partner at our JCG program. See the original article here: Java 8 – Converting a List to String with Examples Opinions expressed by Java Code Geeks contributors are their own. |