snippetjavaCritical
Java: convert List<String> to a join()d String
Viewed 0 times
javaconvertlistjoinstring
Problem
JavaScript has
Does Java have anything like this? I know I can cobble something up myself with
.. but there's no point in doing this if something like it is already part of the JDK.
Array.join()js>["Bill","Bob","Steve"].join(" and ")
Bill and Bob and SteveDoes Java have anything like this? I know I can cobble something up myself with
StringBuilder:static public String join(List list, String conjunction)
{
StringBuilder sb = new StringBuilder();
boolean first = true;
for (String item : list)
{
if (first)
first = false;
else
sb.append(conjunction);
sb.append(item);
}
return sb.toString();
}.. but there's no point in doing this if something like it is already part of the JDK.
Solution
String.joinWith Java 8 you can do this without any third party library.
If you want to join a Collection of Strings you can use the
String.join() method:List list = Arrays.asList("foo", "bar", "baz");
String joined = String.join(" and ", list); // "foo and bar and baz"Collectors.joiningIf you have a Collection with another type than String you can use the Stream API with the joining Collector:
List list = Arrays.asList(
new Person("John", "Smith"),
new Person("Anna", "Martinez"),
new Person("Paul", "Watson ")
);
String joinedFirstNames = list.stream()
.map(Person::getFirstName)
.collect(Collectors.joining(", ")); // "John, Anna, Paul"The
StringJoiner class may also be useful.Code Snippets
List<String> list = Arrays.asList("foo", "bar", "baz");
String joined = String.join(" and ", list); // "foo and bar and baz"List<Person> list = Arrays.asList(
new Person("John", "Smith"),
new Person("Anna", "Martinez"),
new Person("Paul", "Watson ")
);
String joinedFirstNames = list.stream()
.map(Person::getFirstName)
.collect(Collectors.joining(", ")); // "John, Anna, Paul"Context
Stack Overflow Q#1751844, score: 983
Revisions (0)
No revisions yet.