Wednesday, July 7, 2021

Java 8 – Converting a List to String with Examples

Oracle Java 8, Oracle Java Certification, Oracle Java Guides, Oracle Java Career, Oracle Java Preparation

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.

package com.oraclejavacertified.convert.list2string;

import java.util.Arrays;

import java.util.List;

/**

 * Example to convert List to string using toString() method.

 *

 */

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.

 * 

 */

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.

 * 

 */

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.

 * 

 */

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

Source: javacodegeeks.com    

Related Posts

0 comments:

Post a Comment