在Java 8中使用分隔符连接字符串值以处理null和空字符串?

在Java 8中,我有一些String值,并且我想以逗号分隔的有效值列表结尾。如果String为

我想忽略它。我知道这似乎很普遍,很像这个老问题 ;

但是,该讨论并未解决null和空格(我也不喜欢公认的答案)。

我看过Java 8 StringJoiner,公用StringUtils(联接)和可信赖的番石榴(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”

有没有很好的方法可以做到这一点(不涉及for循环,将字符串加载到列表中和/或使用正则表达式替换来删除不良条目)?

回答:

String joined =

Stream.of(val1, val2, val3, val4)

.filter(s -> s != null && !s.isEmpty())

.collect(Collectors.joining(“,”));

以上是 在Java 8中使用分隔符连接字符串值以处理null和空字符串? 的全部内容, 来源链接: utcz.com/qa/411540.html

回到顶部