在Java 8中,我有一些
我看过了Java 8
String
值,我想得到一个用逗号分隔的有效值列表。如果一个String
是null或空,我想要忽略它。我知道这似乎很普遍,很像这个老问题;然而,那个讨论没有处理null和空格(我也不喜欢被接受的答案)。我看过了Java 8
StringJoiner
、Commons StringUtils
(join
) 和可靠的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
有没有一种好的方法来做到这一点(不涉及for循环、将字符串加载到列表中以及/或使用正则表达式替换来删除错误条目)?
Stream.of(val1, val2, val3, val4).filter(s -> s!=null && !s.isEmpty()).collect(joining(","))
,需要静态导入Collectors.joining
。如果您不喜欢这种方式,可以编写自己的类或者在某个库中找到。但是为什么要费事呢? - Misha