这是我的代码,它返回空格和一些有效的字符串。但是,我的要求是使空间无效并仅收集字符串
List<String> stateCodes = stateList.stream()
.map(state-> physician.getStateDetails().getStateCode())
.collect(Collectors.toList());
当我打印stateCodes时,它返回
[ , , 197, 148, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]
这里我只需要[197,148]
最佳答案
过滤掉空值。我不确定您的输出中是否有空的String
。如果是,您可以使用以下方法将其过滤掉:
List<String> stateCodes =
stateList.stream()
.map(state-> physician.getStateDetails().getStateCode())
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
注意:您可以添加 trim()
(到 map
或 filter
步骤)来过滤out 仅包含空格的 String
:
List<String> stateCodes =
stateList.stream()
.map(state-> physician.getStateDetails().getStateCode().trim())
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
关于java - 使用 Java 8 迭代时从列表对象中删除空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59818844/