Lars Andren Lars Andren - 1 month ago 4
Java Question

Fastest way to put contents of Set<String> to a single String with words separated by a whitespace?

I have a few

Set<String>
s and want to transform each of these into a single
String
where each element of the original
Set
is separated by a whitespace " ".
A naive first approach is doing it like this

Set<String> set_1;
Set<String> set_2;

StringBuilder builder = new StringBuilder();
for (String str : set_1) {
builder.append(str).append(" ");
}

this.string_1 = builder.toString();

builder = new StringBuilder();
for (String str : set_2) {
builder.append(str).append(" ");
}

this.string_2 = builder.toString();


Can anyone think of a faster, prettier or more efficient way to do this?

Answer

With commons/lang you can do this using StringUtils.join:

String str_1 = StringUtils.join(set_1, " ");

You can't really beat that for brevity.

Update:

Re-reading this answer, I would prefer the other answer regarding Guava's Joiner now. In fact, these days I don't go near apache commons.