Java中如何通过for循环仅打印字符串数组的非空元素?
仅打印Java字符串数组中的非空元素
嘿,既然你已经搞定了数值数组的相关操作,那字符串数组的这个需求其实逻辑相通,只是判断条件稍有不同~下面给你几种常用的for循环实现方式,覆盖不同场景:
1. 普通索引式for循环
这种方式适合需要用到数组索引的场景,判断逻辑要注意先判null再判空字符串,避免触发空指针异常(NPE):
// 示例数组,包含有效字符串、空字符串和null String[] strArray = {"Hi", "", null, "Stack Overflow", "", "Java", null, "", "", "!"}; for (int i = 0; i < strArray.length; i++) { String currentStr = strArray[i]; // 先判断不为null,再判断不是空字符串 if (currentStr != null && !currentStr.isEmpty()) { System.out.println(currentStr); } }
2. 增强for循环(for-each)
如果不需要用到索引,用这种方式代码更简洁,可读性更高:
for (String currentStr : strArray) { // 如果你需要忽略全空白的字符串(比如" "),可以用Java 11+的isBlank() if (currentStr != null && !currentStr.isBlank()) { System.out.println(currentStr); } }
小提示:
isEmpty():仅判断字符串长度是否为0(即"");isBlank():会同时忽略全空白的字符串(比如" "),适合更严格的非空判断;- 一定要先判断
currentStr != null,不然如果元素是null,调用isEmpty()或isBlank()会直接抛出空指针异常!
内容的提问来源于stack exchange,提问作者G.S.
相关产品推荐
相关产品推荐

