Java中过滤空字符串集合应优先使用Stream配合String::isBlank(Java 11+)或StringUtils.isNotBlank(Apache Commons),二者均null安全、语义明确、一行实现,避免手动遍历引发异常。
在Java中过滤掉空字符串集合,核心是遍历并剔除 null、空串("")或仅含空白字符的字符串(如 " ")。推荐使用 Stream 配合 String::isBlank(Java 11+)或 StringUtils.isNotBlank(Apache Commons),简洁安全。
这是最现代、无依赖的写法,自动跳过 null 和空白字符串:
isBlank() 内部已处理 null 安全,无需额外判空List,不修改原集合
)若项目已引入 commons-lang3,StringUtils.isNotBlank 更稳妥(对 null 友好,且兼容 Java 8):
org.apache.commons:commons-lang3
.filter(StringUtils::isNotBlank)
!str.isEmpty() 或 !str.trim().isEmpty() 更健壮避免用传统 for 循环边遍历边 remove(易漏删或抛 ConcurrentModificationException);如必须用迭代器:
Iterator 的 remove() 方法基本上就这些。优先选 String::isBlank(Java 11+)或 StringUtils.isNotBlank(老项目),一行搞定,语义明确,不易出错。