代码之家  ›  专栏  ›  技术社区  ›  Himanshu

比较Java中的空值

  •  -1
  • Himanshu  · 技术社区  · 7 年前

    我有一个比较数据的代码,但数据包含空值而不是空格(“”)。它们可能/可能不一样,我猜,但我尝试比较重复的空值,如

             for(int i=0;i<length;i++)
          {
        String data=sample_data.getData();// contains about 
           1000 null rows
        if(data.equals(null) || data.equals("") || data== null 
         ||data.isEmpty())
          System.out.print("No Data"); 
    
       }
    

    我本可以用 .contains 但这行不通,因为它在循环中。 没有一个方法使其将输出打印为 No Data 我试过使用 try catch 也是因为为了确保是否发现了任何错误,同时是否正确 isEmpty() .equals(null) 某个地方或其他地方将异常作为NULL抛出,但即使在删除并简单使用 ==Null 认识到数据本身是空的,并进行类似的比较 null.equals 不会工作,但如果 == 我发现错误异常被更改为值1,之后出现了相同的错误,我无法识别这一点。 这是我在这里展示的样本,我无法发布准确的信息,但以上内容非常清楚。我还有别的办法吗 NULL 价值观

    注意:我不想使用循环来迭代数据,每次比较 空值 值,因为已经有一个用于大型值集的外部循环,所以不使用示例代码。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Littlefoot    7 年前

    正在恢复 windows 恢复出厂设置 windows (顾名思义);不会的 破坏 任何东西

        2
  •  0
  •   user10762593 user10762593    7 年前

    在这个

           String data=sample_data.getData();// contains about 1000 null rows
           if(data.equals(null) || data.equals("") || data== null 
    

    你显然很担心 data 可能为空。

    如果它确实为null,那么 if 语句将引发空指针异常。。。因为你不能打电话给 equals 方法。

    你想要的

           if (data == null || data.isEmpty())
    

    这涵盖了所有不存在的情况,可能除了数据是“一些空格字符”的情况,但我将把它留给您。