用分隔符连接字符串值,处理空字符串和空字符串?

2022-08-31 22:39:07

在Java 8中,我有一些值,我想以逗号分隔的有效值列表结束。如果 a 为空或为空,我想忽略它。我知道这似乎很常见,很像这个老问题;但是,该讨论没有解决空值和空格问题(我也不喜欢接受的答案)。StringString

我看过Java 8,Commons()和值得信赖的Guava(),但似乎没有一个完整的解决方案。愿景:StringJoinerStringUtilsjoinJoiner

 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循环,将字符串加载到列表中,和/或正则表达式替换以删除错误的条目)?


答案 1
String joined = 
    Stream.of(val1, val2, val3, val4)
          .filter(s -> s != null && !s.isEmpty())
          .collect(Collectors.joining(","));

答案 2

推荐