【问题标题】:Empty check with String[] array [duplicate]使用 String [] 数组进行空检查 [重复]
【发布时间】:2014-03-04 03:24:56
【问题描述】:

我想知道检查字符串数组是否为空的最佳实践。

String[] name = {"a" , "b"};

if (name == null) {
}

这是一个好的做法还是有更多相同的最佳代码?

【问题讨论】:

  • “String[] 的布尔值”是什么意思?你期望什么是真的,你期望什么是假的?
  • 我认为“String[] 的布尔值”的概念根本不适用于 Java。它不像 JavaScript,事物要么是真要么是假的。您可以检查引用是否为空,或者数组的元素是否为空,但仅此而已。

标签: java


【解决方案1】:

通常你会想做这样的事情:

if (arr != null && arr.length > 0) { ... }

对于非空数组。

但是,您可能会怀疑,有人为此类常见操作制作了实用程序。例如,在 Commons-lang 中,您可以执行以下操作:

if (ArrayUtils.isEmpty(arr)) {... }

如果您为ArrayUtils.isEmpty 进行静态导入,则此行可以更短并且看起来更好:

if (isEmpty(arr)) { ... }

【讨论】:

  • org.apache.commons.lang.ArrayUtils 如果项目已经在使用 apache 包,这将更有用,通常简单的 prog 不使用该 jar 分发
  • @SrinathGanesh 当然是否使用 3rd 方库是 OP 的选择,但是,使用 Maven 和 Gradle 等现代构建工具,我认为在简单程序中使用此类库没有任何问题。跨度>
【解决方案2】:
if(name!=null && name.length > 0) {
   // This means there are some elements inside name array.
} else {
   // There are no elements inside it.
}

【讨论】:

  • length 在数组中是一个字段,而不是一个方法。
  • @BrianRoach,感谢您指出,我错误地添加了括号。
  • 是否需要空检查??长度已经完成了这项工作
  • @SrinathGanesh, Yes null 检查是必需的,因为如果 name 为 null,那么 name.length 将给出 NullPointerException
  • 不知道 :) 很高兴知道
【解决方案3】:

检查一个字符串数组是否为空...

public boolean isEmptyStringArray(String [] array){
 for(int i=0; i<array.length; i++){ 
  if(array[i]!=null){
   return false;
  }
  }
  return true;
}

【讨论】:

    【解决方案4】:

    Java 中的所有数组都有一个特殊的字段“length”,它包含数组中元素的数量,也就是数组长度。

    String test( String[] array )
    {
        if ( array == null ) {
            return "array is null";
        }
        if ( array.length == 0 ) {
            return "array is empty, meaning it has no element";
        }
        for ( String s : array ) {
            if (s == null) {
                return "array contains null element";
            }
            if (s.length() == 0) {
                return "array contains empty string";
            }
            // or
            if (s.isEmpty()) {
                return "array contains empty string";
            }
        }
    
        return "array is not null or empty and does not contain null or empty strings";
    }
    

    要测试数组是否包含空元素或空字符串,您需要遍历它并单独检查每个元素。

    不要忘记数组的长度是特殊字段array.legnth,字符串的长度是函数string.length()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 2012-01-09
      • 2016-04-23
      相关资源
      最近更新 更多