Java Language Unione di stringhe con un delimitatore


Esempio

Java SE 8

Un array di stringhe può essere unito usando il metodo statico String.join() :

String[] elements = { "foo", "bar", "foobar" };
String singleString = String.join(" + ", elements);

System.out.println(singleString); // Prints "foo + bar + foobar"     

Allo stesso modo, c'è un metodo String.join() sovraccarico per Iterable s.


Per avere un controllo dettagliato sull'unione , è possibile utilizzare la classe StringJoiner :

StringJoiner sj = new StringJoiner(", ", "[", "]"); 
    // The last two arguments are optional, 
    // they define prefix and suffix for the result string

sj.add("foo");
sj.add("bar");
sj.add("foobar");

System.out.println(sj); // Prints "[foo, bar, foobar]"

Per unire un flusso di stringhe, puoi utilizzare il raccoglitore di join:

Stream<String> stringStream = Stream.of("foo", "bar", "foobar");
String joined = stringStream.collect(Collectors.joining(", "));
System.out.println(joined); // Prints "foo, bar, foobar"

C'è anche un'opzione per definire prefisso e suffisso :

Stream<String> stringStream = Stream.of("foo", "bar", "foobar");
String joined = stringStream.collect(Collectors.joining(", ", "{", "}"));
System.out.println(joined); // Prints "{foo, bar, foobar}"