Java 8では、いくつかの文字列値があり、有効な値のカンマ区切りのリストで終わりたいと思います。文字列がで空または空の場合私はそれを無視したい。私はこれがよく見えて、多くのようなものだと知っていますthis old question;しかし、その議論では、空白と空白は扱われません(私も受け入れられた答えが嫌いです)。文字列の値を、Java 8の空文字列を処理する区切り文字と連結しますか?
私はJava 8 StringJoiner、Commons StringUtils(join)、およびtrusty guava(Joiner)を見てきましたが、どれも完全な解決策ではないようです。ビジョン:
where: val1="a", val2=null, val3="", val4="b"
String niceString = StringJoiner.use(",").ignoreBlanks().ignoreNulls()
.add(val1).add(val2).add(val3).add(val4).toString();
(つまり、forループリストにロードする文字列を含ませず、niceString =「B」
はこれを行うには良い方法がないことになります/または正規表現は不正なエントリを削除するために置き換えられます)?
http://stackoverflow.com/questions/31380784/java-8-stream-string-null-or-empty-filter – Savior
簡単なJavaの8の方法は 'Stream.of(val1と、VAL2、val3は、val4).filter(s - > s!= null &&!s.isEmpty())。collect(join( "、")) '' Collectors.joining'の静的インポート。それがあなたの好みに合っていないなら、あなたは自分のクラスを作ったり、いくつかの図書館で見つけなければなりません。しかし、なぜ迷惑? – Misha
dup by titleおそらく、意図はありません。 – eze