Sono sicuro che ti sei trovato in una situazione in cui volevi concatenare più righe. Se non hai scritto in Java, probabilmente hai utilizzato una funzione
join()
fornita dal linguaggio di programmazione stesso. Se scrivessi in Java, non potresti farlo per un semplice motivo: questo metodo non esiste. La libreria di classi standard in Java fornisce gli strumenti per creare applicazioni GUI, per accedere ai database, per inviare dati in rete, per eseguire trasformazioni XML o per chiamare metodi da librerie di terze parti. Non è stato incluso un metodo semplice per concatenare una raccolta di stringhe. Per fare questo, avevi bisogno di una delle tante librerie di terze parti. Per fortuna tutto questo è finito! In Java 8 possiamo finalmente concatenare le stringhe! Java 8 ha aggiunto una nuova classe chiamata StringJoiner
. Come suggerisce il nome, possiamo usare questa classe per concatenare le stringhe:
StringJoiner joiner = new StringJoiner(",");
joiner.add("foo");
joiner.add("bar");
joiner.add("baz");
String joined = joiner.toString(); // "foo,bar,baz"
// add() calls can be chained
joined = new StringJoiner("-")
.add("foo")
.add("bar")
.add("baz")
.toString(); // "foo-bar-baz"
String
utilizza due nuovi metodi statici join() StringJoiner
:
// join(CharSequence delimiter, CharSequence... elements)
String joined = String.join("/", "2014", "10", "28" ); // "2014/10/28"
// join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
List<String> list = Arrays.asList("foo", "bar", "baz");
joined = String.join(";", list); // «foo;bar;baz"
Inoltre, per concatenare le stringhe ce n'è uno speciale Collector
nella nuova API che utilizza i flussi:
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»
In questo modo non abbiamo più bisogno di librerie di terze parti per concatenare le stringhe! Articolo originale
GO TO FULL VERSION