In Java 8いくつかの文字列値があり、有効な値のコンマ区切りリストになります。文字列がnullまたは空の場合無視したい。これはよくあるようで、 この古い質問 によく似ていることは知っているが、その議論はヌルとスペースを扱っていない受け入れられた答えが好きではありません)。
私は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();
niceString = "a、b"になります
これを行うための素敵な方法はありませんか?(ループ、リストへの文字列のロード、および/または不正なエントリを削除するための正規表現の置換を必要としません)?
String joined =
Stream.of(val1, val2, val3, val4)
.filter(s -> s != null && !s.isEmpty())
.collect(Collectors.joining(","));