In Java 8 habe ich eine Reihe von String-Werten und ich möchte mit einer durch Kommas begrenzten Liste gültiger Werte enden. Wenn ein String null oder leer ist, möchte ich es ignorieren. Ich weiß, das scheint häufig und ist sehr ähnlich wie this old question; Diese Diskussion befasst sich jedoch nicht mit NULLEN UND Leerzeichen (die akzeptierte Antwort gefällt mir auch nicht).Verketten Zeichenfolge Werte mit Begrenzer Umgang mit Null und leere Zeichenfolgen in Java 8?
Ich habe Java 8 StringJoiner, Commons StringUtils (Join) und trusty Guava (Joiner) betrachtet, aber keine scheint wie eine vollständige Lösung. Die Vision:
where: val1="a", val2=null, val3="", val4="b"
String niceString = StringJoiner.use(",").ignoreBlanks().ignoreNulls()
.add(val1).add(val2).add(val3).add(val4).toString();
würde in niceString = "a, b"
Gibt es nicht eine schöne Art und Weise, dies zu tun (das beinhaltet nicht für Schleifen, Lade Strings in eine Liste, und/oder Regex ersetzt, um schlechte Einträge zu entfernen)?
http://stackoverflow.com/questions/31380784/java-8-stream-string-null-or-empty-filter – Savior
Die einfache Java 8 Weg ist 'Stream.of (val1, val2, val3 , val4) .filter (s -> s! = null &&! s.isEmpty()). collect (Zusammenfügen (",")) 'mit einem statischen Import von' Collectors.joining'. Wenn dir das nicht gefällt, musst du deinen eigenen Kurs machen oder einen in einer Bibliothek finden. Aber warum stören? – Misha
dup durch Titel vielleicht, aber nicht intension. – eze