如何检查包含空元素的空字符串数组
How to check for empty String array including empty elements
org.apache.commons.lang3.ArrayUtils
提供了检查 Array
是否为空的方法,但是例如 String
具有空字符串元素的数组意味着字符 ""
它 returns true
用于 isNotEmpty()
方法,这是正确的,因为该方法仅检查 null
和 length == 0
。
是否有任何其他方法或实现也检查数组是否有空元素?
我可以自己做,遍历数组并手动删除这些元素当然,但我最好使用任何库作为 apache
。
有什么提示吗?
我认为您必须手动完成,最好使用 StringUtils.isNotBlank(str)
而不是 arrayUtils。这样你就不会在数组上迭代两次。
与Java 8:
final String[] strings = {"", "Hello", "World"};
final boolean containsEmptyString = Stream.of(strings)
.anyMatch(string -> string == null || string.isEmpty());
所以手动方式可能是 Java1.6 中唯一的解决方案 | 1.7 :
public static boolean isEmpty(String[] array){
for(String tmp : array){
if(StringUtils.isNotBlank(tmp)){
return false;
}
}
return true;
}
StringUtils
可能来自 apache,或者自己的代码检查 NULL && length ==0
org.apache.commons.lang3.ArrayUtils
提供了检查 Array
是否为空的方法,但是例如 String
具有空字符串元素的数组意味着字符 ""
它 returns true
用于 isNotEmpty()
方法,这是正确的,因为该方法仅检查 null
和 length == 0
。
是否有任何其他方法或实现也检查数组是否有空元素?
我可以自己做,遍历数组并手动删除这些元素当然,但我最好使用任何库作为 apache
。
有什么提示吗?
我认为您必须手动完成,最好使用 StringUtils.isNotBlank(str)
而不是 arrayUtils。这样你就不会在数组上迭代两次。
与Java 8:
final String[] strings = {"", "Hello", "World"};
final boolean containsEmptyString = Stream.of(strings)
.anyMatch(string -> string == null || string.isEmpty());
所以手动方式可能是 Java1.6 中唯一的解决方案 | 1.7 :
public static boolean isEmpty(String[] array){
for(String tmp : array){
if(StringUtils.isNotBlank(tmp)){
return false;
}
}
return true;
}
StringUtils
可能来自 apache,或者自己的代码检查 NULL && length ==0