java判断空的实现方法

 更新时间:2024年09月17日 10:36:59   作者:lib_w  
字符串判断空有两种情况:一个是分配了内存但值为空(""),另一个是未分配内存(null),判断方法包括isEmpty()和isBlank(),其中isBlank()还可以过滤空格、制表符,对于列表,判断不为空可以使用list!=null && !list.isEmpty()或list!=null && list.size()>0

字符串判空

字符串为空分为两种情况

1)“”:表示分配了内存空间,值为空字符串,有值。

2)null:未分配内存空间,无值,值不存在。

为空的标准为:str == null 或 str.length()==0

1.判断为空

isEmpty()方法,判断是否为空,是否为空字符串(在String为null时,会出现空指针错误,isEmpty()方法底层是判断长度)isBlank()方法,是判断字符串是否为空,空格、制表符、tab。

public static boolean isEmpty(CharSequence cs) {
       return cs == null || cs.length() == 0;
   }

public static boolean isBlank(CharSequence cs) {
        int strLen;
        if (cs != null && (strLen = cs.length()) != 0) {
        	//判断是否为空格、制表符、tab
            for(int i = 0; i < strLen; ++i) {
                if (!Character.isWhitespace(cs.charAt(i))) {
                    return false;
                }
            }

            return true;
        } else {
            return true;
        }
    }

2.判断不为空

isNotEmpty()、isNotBlank()

推荐使用lang3下的StringUtiles工具类中

StringUtils.isBlank()和StringUtils.isNotBlank(),它会过滤空格。

List判空

1.判断list不为空

  • 方法1:list != null && !list.isEmpty()
  • 方法2:list != null && list.size() > 0

注:

  • list!=null:判断是否存在list,null表示这个list不指向任何的东西,如果为空时调用它的方法,那么就会出现空指针异常。
  • list.isEmpty():判断list里是否有元素存在
  • list.size():判断list里有几个元素

所以判断list里是否有元素的最佳的方法是:

if(list != null && !list.isEmpty()){
//list存在且里面有元素
}

2.判断list为空

  • 方法1:list == null || list.size() == 0

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot整合mybatis-plus实现多表分页查询的示例代码

    springboot整合mybatis-plus实现多表分页查询的示例代码

    这篇文章主要介绍了springboot整合mybatis-plus实现多表分页查询的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 详解Java 信号量Semaphore

    详解Java 信号量Semaphore

    这篇文章主要介绍了Java 信号量Semaphore的相关资料,帮助大家更好的理解和学习Java并发,感兴趣的朋友可以了解下
    2020-09-09
  • SWT JFace Bookmark 制作

    SWT JFace Bookmark 制作

    SWT JFace Bookmark 制作
    2009-06-06
  • SpringBoot整合OpenApi的实践

    SpringBoot整合OpenApi的实践

    本文主要介绍了SpringBoot整合OpenApi,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Java如何利用CompletableFuture描述任务之间的关系

    Java如何利用CompletableFuture描述任务之间的关系

    Java如何根据线程的执行结果执行下一步动作呢,Future的另一个实现类CompletableFuture能够优雅的解决异步化问题,下面就跟随小编一起了解一下吧
    2023-07-07
  • Netty 轻松实现文件上传功能

    Netty 轻松实现文件上传功能

    今天我们来完成一个使用netty进行文件传输的任务。在实际项目中,文件传输通常采用FTP或者HTTP附件的方式,对Netty 文件上传功能感兴趣的朋友一起看看吧
    2021-07-07
  • Java连接 JDBC基础知识(操作数据库:增删改查)

    Java连接 JDBC基础知识(操作数据库:增删改查)

    这篇文章主要介绍了Java连接 JDBC基础知识,包括操作数据库之增删改查操作,需要的朋友可以参考下
    2021-04-04
  • application.yml和bootstrap.yml不生效的3种解决方案

    application.yml和bootstrap.yml不生效的3种解决方案

    SpringBoot默认支持 properties(.properties) 和 YAML(.yml .yaml ) 配置文件,本文主要介绍了application.yml和bootstrap.yml不生效的3种解决方案,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • java实现大文本文件拆分

    java实现大文本文件拆分

    这篇文章主要为大家详细介绍了java实现大文本文件拆分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • MyBatis批量插入的三种方式比较总结

    MyBatis批量插入的三种方式比较总结

    由于项目需要生成多条数据,并保存到数据库当中,所以就用到了MyBatis批量插入,下面这篇文章主要给大家介绍了关于MyBatis批量插入的三种方式的相关资料,需要的朋友可以参考下
    2021-08-08

最新评论