java - 使用 Java 8 迭代时从列表对象中删除空间

标签 java java-8 java-stream

这是我的代码,它返回空格和一些有效的字符串。但是,我的要求是使空间无效并仅收集字符串

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()(到 mapfilter 步骤)来过滤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/

相关文章:

java - Docker (LXC) 容器中的 JVM 内存分配

java - 我正在尝试使用Hadoop MapReduce计算文本文件中 “pairs of word”的出现次数

java - 为什么没有函数 Stream.flatMap()?

java - Hibernate Criteria 和 DetachedCriteria 连接属性或字段

java - 使用 Java 8 Lambda 表达式查找票据列表是否具有不同货币

java - 如何有效地过滤并收集到具有来自几个 map 的不同派生 map 值的结果 map ?

java - spring-data-jpa 不适用于 java 8 LocalTime

java - 列出 groupingBy Objects 字段并计算出现次数

Java Streams 返回一个特定的类

Java ScriptEngine 支持的语言