Core Java

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.

GitHub Code

Ref Collectos.joining()

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.

Venkatesh Nukala

Venkatesh Nukala is a Software Engineer working for Online Payments Industry Leading company. In my free time, I would love to spend time with family and write articles on technical blogs. More on JavaProgramTo.com
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button