Thursday, August 23, 2012

How to Convert Collection to String in Java - Spring Framework Example

How to convert Collection to String in Java
Many times we need to convert any Collection like Set or List into String like comma separated or any other delimiter delimited String. Though this is quite a trivial job for a Java programmer as you just need to Iterate through the loop and create a big String where individual String are separated by a delimiter, you still need to handle cases like the last element should not have delimiter or at a bare minimum you need to test that code. I like Joshua Bloch advice on Effective Java to use libraries for those common tasks let it be an internal proprietary library or any open source library as used in previous examples of  Spring, Apache Commons or Google’s Guava but point is that you should avoid converting ArrayList to String like common task by yourself on application code.

Collection to String Example in Java

I am a big fan of Spring framework and we use Spring in most of our projects and we have already discussed few examples of Spring framework in Java before e.g. Using Spring to calculate execution time and Spring security to control Concurrent Sessions in Java.  In this Java tutorial, I will share you an example of converting List to delimited String, Set to delimit String or any other Collection class into delimited String by using Spring framework's StringUtils class. 

Spring provides two convenient method collectionToCommaDelimitedString and collectionToDelimitedString which can be used here. This example is general and you can convert any Collection into a comma separated or any delimiter separated String by using this technique. Order of individual String in delimited String is the order on which they are stored in Collection e.g. List or Set. This particular Java program shows How to convert a List into a comma, colon and pipe separated String.

Collection to String delimited Example - Spring frameworkimport java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import org.springframework.util.StringUtils;

 * Simple Java program to demonstrate How to convert List or Set into String in Java.
 * Spring framework's StringUtils class provide methods like
 * collectionToCommaDelimitedString and collectionToDelimitedString
 * which can convert any Java collection class like ArrayList or HashSet
 * into comma delimited String.
 * @author Javin

public class CollectionToString{
    public static void main(String args[]) {
        //List with multiple Strings for testing
        List<String> frameworks = Arrays.asList("Spring MVC", "Struts 2.0", "Velocity", "Wicket");
        //let's convert this list into comma separated String
        String commaDelimitedString = StringUtils.collectionToCommaDelimitedString(frameworks);
        //list to colon delimited String
        String colonDelimitedString = StringUtils.collectionToDelimitedString(frameworks, ":");
        //List to pipe delimited String
        String pipeDelimitedString = StringUtils.collectionToDelimitedString(frameworks, "|");
        //Now let's convert Set into String in Java
        HashSet<String> frameworkSet = new HashSet(frameworks);
        //HashSet to comma separated String
        commaDelimitedString = StringUtils.collectionToCommaDelimitedString(frameworkSet);
        //Set to delimiter separated String using Spring
        colonDelimitedString = StringUtils.collectionToDelimitedString(frameworkSet, ":");
        //Set to pipe delimited String using Spring framework StringUtils
        pipeDelimitedString = StringUtils.collectionToDelimitedString(frameworkSet, "|");

Spring MVC,Struts 2.0,Velocity,Wicket
Spring MVC:Struts 2.0:Velocity:Wicket
Spring MVC|Struts 2.0|Velocity|Wicket
Struts 2.0,Spring MVC,Velocity,Wicket
Struts 2.0:Spring MVC:Velocity:Wicket
Struts 2.0|Spring MVC|Velocity|Wicket

That’s all on How to convert Collection into Comma or delimiter separated String in Java. In this Java tutorial we have seen How to convert List into a comma separated, colon separate and finally, PIPE separated String. You can use any delimiter of your choice to print all Collection elements as String in Java.

Further Reading
Expert Spring MVC and Web Flow (read here)
Spring Fundamentals By Bryan Hansen (see)
Introduction to Spring MVC 4 By Bryan Hansen (see)
Hibernate Interview Questions and answers (see here)

Other Java Collection tutorials from Javarevisited Blog

P.S. - If you want to learn how to develop RESTful Web Service using Spring MVC in depth, I suggest you join the REST with Spring certification class by Eugen Paraschiv. One of the best course to learn REST with Spring MVC. 


Anonymous said...

The Collection class in Java should be enhanced to simply have a join method

Other languages, such as Ruby, have way more rich APIs in classes like String and Array.

Ben said...

I think the Apache Common Lang lib can do this too. In fact. I think the spring one just either extends the Apache one or delegate it

Bharat Bhagat said...

why don't you use toString method of that collection its comma separated list of set or list..

Prasanth Jalasutram said...

nice article.

thanks for sharing.

Anonymous said...

why don't you just use toString() instead??

Post a Comment