Pages

Thursday, November 11, 2021

Java 8 - Converting a List to String 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.

Java 8 Streams- Converting a List to String with Examples.png



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.

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:

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.

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:
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.

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:
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.

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:
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.



No comments:

Post a Comment

Please do not add any spam links in the comments section.