16

Possible Duplicate:
Java: convert List<String> to a join()d string

Having this:

List<String> elementNames = Arrays.asList("h1", "h2", "h3", "h4", "h5", "h6");

What is an elegant way to get String with a custom delimiter, like so:

"h1,h2,h3,h4,h5,h6"
Community
  • 1
  • 1
Alp
  • 29,274
  • 27
  • 120
  • 198

2 Answers2

38
StringBuilder sb = new StringBuilder();

for(String s: elementnames) {
   sb.append(s).append(',');
}

sb.deleteCharAt(sb.length()-1); //delete last comma

String newString = sb.toString();

Update: Starting java 8, you can obtain the same results using:

    List<String> elementNames = Arrays.asList("1", "2", "3");

    StringJoiner joiner = new StringJoiner(",", "", "");
    elementNames.forEach(joiner::add);

    System.out.println(joiner.toString());
gouki
  • 4,382
  • 3
  • 20
  • 20
28

If you don't mind using the StringUtils library provided by apache, you could do:

// Output is "a,b,c"
StringUtils.join(["a", "b", "c"], ','); 

https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html

debracey
  • 6,517
  • 1
  • 30
  • 56