In Java 8 ho un certo numero di valori di stringa e voglio finire con un elenco delimitato da virgola di valori validi. Se una stringa è nullo o vuoto, voglio ignorarlo. So che questo sembra comune ed è molto simile a this old question; tuttavia, quella discussione non affronta gli spazi NULL e NULL (anche io non mi piace la risposta accettata).Concatena i valori stringa con delimitatore che gestisce stringhe null e vuote in java 8?
Ho esaminato Java 8 StringJoiner, commons StringUtils (join) e fidato guava (Joiner) ma nessuno sembra una soluzione completa. La visione:
where: val1="a", val2=null, val3="", val4="b"
String niceString = StringJoiner.use(",").ignoreBlanks().ignoreNulls()
.add(val1).add(val2).add(val3).add(val4).toString();
comporterebbe niceString = "a, b"
non c'è un bel modo per fare questo (che non comporta per i loop, le stringhe di carico in un elenco, e/o regex sostituisce per rimuovere le voci errate)?
http://stackoverflow.com/questions/31380784/java-8-stream-string-null-or-empty-filter – Savior
Il modo più semplice di Java 8 è 'Stream.of (val1, val2, val3 , val4) .filter (s -> s! = null &&! s.isEmpty()). collect (unendo (",")) 'con un'importazione statica di' Collectors.joining'. Se non è di tuo gradimento, dovresti creare la tua classe o trovarne una in qualche biblioteca. Ma perché preoccuparsi? – Misha
dup per titolo forse ma non intensione. – eze