1、如果想判断list是否为空,可以这么判断:
if(null == list || list.size() ==0 ){
  //为空的情况
}else{
  //不为空的情况
} 2、list.isEmpty() 和  list.size()==0  有啥区别呢
  答案:没有区别 。
         isEmpty()判断有没有元素,而size()返回有几个元素;
如果判断一个集合有无元素 建议用isEmpty()方法.比较符合逻辑用法。 3、list!=null  跟  ! list.isEmpty()有什么区别?
比如:书店和数
list!=null         首先判断【书店】是否存在?
!list.isEmpty()     不判断【书店】是否存在,而是判断【书店】是否有书? 所以,一般的list非空判断是:
if(list!=null && !list.isEmpty()){
   //不为空的情况
}else{
   //为空的情况
}  
————————————————
版权声明:本文为CSDN博主「maocxu」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fk_d_st/article/details/79084850

String str = " ";
//第一种错误情况
if (!"".equals(str) || str != null) { } //第二种错误情况
if (str != null || !"".equals(str)) { } //第三种错误情况

if (str != null || str.length() != 0) { } 很多人都出现了上面3种情况的一种
第一种错误是最低级的,如果str = null,那么程序将会报空指针 第二种和第三种情况虽然不会报错,但是无法做到准确校验空字符串,如果字符串本身就是一串空格,将不会被拦截到 比较成熟的写法如下: if (str != null || !"".equals(str.trim())) {
//则字符串不为空或空格
}

StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。
 
除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx()
 
下面分别对一些常用方法做简要介绍:
 
1public static boolean isEmpty(String str)
   判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0
   下面是 StringUtils 判断是否为空的示例:
 
      StringUtils.isEmpty(null) = true
      StringUtils.isEmpty("") = true
      StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理
      StringUtils.isEmpty("   ") = false
      StringUtils.isEmpty("bob") = false
      StringUtils.isEmpty(" bob ") = false
 
2public static boolean isNotEmpty(String str)
   判断某字符串是否非空,等于 !isEmpty(String str)
   下面是示例:
 
      StringUtils.isNotEmpty(null) = false
      StringUtils.isNotEmpty("") = false
      StringUtils.isNotEmpty(" ") = true
      StringUtils.isNotEmpty("         ") = true
      StringUtils.isNotEmpty("bob") = true
      StringUtils.isNotEmpty(" bob ") = true
 
3public static boolean isBlank(String str)
   判断某字符串是否为空或长度为0或由空白符(whitespace) 构成
   下面是示例:
      StringUtils.isBlank(null) = true
      StringUtils.isBlank("") = true
      StringUtils.isBlank(" ") = true
      StringUtils.isBlank("        ") = true
      StringUtils.isBlank("\t \n \f \r") = true   //对于制表符、换行符、换页符和回车符
 
      StringUtils.isBlank()   //均识为空白符
      StringUtils.isBlank("\b") = false   //"\b"为单词边界符
      StringUtils.isBlank("bob") = false
      StringUtils.isBlank(" bob ") = false
 
4public static boolean isNotBlank(String str)
   判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成,等于 !isBlank(String str)
   下面是示例:
 
      StringUtils.isNotBlank(null) = false
      StringUtils.isNotBlank("") = false
      StringUtils.isNotBlank(" ") = false
      StringUtils.isNotBlank("         ") = false
      StringUtils.isNotBlank("\t \n \f \r") = false
      StringUtils.isNotBlank("\b") = true
      StringUtils.isNotBlank("bob") = true
      StringUtils.isNotBlank(" bob ") = true
 
5public static String trim(String str)
   去掉字符串两端的控制符(control characters, char <= 32) , 如果输入为 null 则返回null
   下面是示例:
      StringUtils.trim(null) = null
      StringUtils.trim("") = ""
      StringUtils.trim(" ") = ""
      StringUtils.trim(" \b \t \n \f \r    ") = ""
      StringUtils.trim("     \n\tss   \b") = "ss"
      StringUtils.trim(" d   d dd     ") = "d   d dd"
      StringUtils.trim("dd     ") = "dd"
      StringUtils.trim("     dd       ") = "dd"
 
6public static String trimToNull(String str)
   去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null "",则返回 null
   下面是示例:
      StringUtils.trimToNull(null) = null
      StringUtils.trimToNull("") = null
      StringUtils.trimToNull(" ") = null
      StringUtils.trimToNull("     \b \t \n \f \r    ") = null
      StringUtils.trimToNull("     \n\tss   \b") = "ss"
      StringUtils.trimToNull(" d   d dd     ") = "d   d dd"
      StringUtils.trimToNull("dd     ") = "dd"
      StringUtils.trimToNull("     dd       ") = "dd"
 
7public static String trimToEmpty(String str)
   去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null 或 "" ,则返回 ""
   下面是示例:
      StringUtils.trimToEmpty(null) = ""
      StringUtils.trimToEmpty("") = ""
      StringUtils.trimToEmpty(" ") = ""
      StringUtils.trimToEmpty("     \b \t \n \f \r    ") = ""
      StringUtils.trimToEmpty("     \n\tss   \b") = "ss"
      StringUtils.trimToEmpty(" d   d dd     ") = "d   d dd"
      StringUtils.trimToEmpty("dd     ") = "dd"
      StringUtils.trimToEmpty("     dd       ") = "dd"
 
8public static String strip(String str)
   去掉字符串两端的空白符(whitespace) ,如果输入为 null 则返回 null
   下面是示例(注意和 trim() 的区别):
      StringUtils.strip(null) = null
      StringUtils.strip("") = ""
      StringUtils.strip(" ") = ""
      StringUtils.strip("     \b \t \n \f \r    ") = "\b"
      StringUtils.strip("     \n\tss   \b") = "ss   \b"
      StringUtils.strip(" d   d dd     ") = "d   d dd"
      StringUtils.strip("dd     ") = "dd"
      StringUtils.strip("     dd       ") = "dd"
 
9public static String stripToNull(String str)
   去掉字符串两端的空白符(whitespace) ,如果变为 null "",则返回 null
   下面是示例(注意和 trimToNull() 的区别):
      StringUtils.stripToNull(null) = null
      StringUtils.stripToNull("") = null
      StringUtils.stripToNull(" ") = null
      StringUtils.stripToNull("     \b \t \n \f \r    ") = "\b"
      StringUtils.stripToNull("     \n\tss   \b") = "ss   \b"
      StringUtils.stripToNull(" d   d dd     ") = "d   d dd"
      StringUtils.stripToNull("dd     ") = "dd"
      StringUtils.stripToNull("     dd       ") = "dd"
 
10public static String stripToEmpty(String str)
    去掉字符串两端的空白符(whitespace) ,如果变为 null "" ,则返回""
    下面是示例(注意和 trimToEmpty() 的区别):
      StringUtils.stripToNull(null) = ""
      StringUtils.stripToNull("") = ""
      StringUtils.stripToNull(" ") = ""
      StringUtils.stripToNull("     \b \t \n \f \r    ") = "\b"
      StringUtils.stripToNull("     \n\tss   \b") = "ss   \b"
      StringUtils.stripToNull(" d   d dd     ") = "d   d dd"
      StringUtils.stripToNull("dd     ") = "dd"
      StringUtils.stripToNull("     dd       ") = "dd"
 
以下方法只介绍其功能,不再举例:
11public static String strip(String str, String stripChars)
   去掉 str 两端的在 stripChars 中的字符。
   如果 str 为 null 或等于"" ,则返回它本身;
   如果 stripChars 为 null "" ,则返回 strip(String str) 。
 
12public static String stripStart(String str, String stripChars)
    11相似,去掉 str 前端的在 stripChars 中的字符。
 
13public static String stripEnd(String str, String stripChars)
    11相似,去掉 str 末端的在 stripChars 中的字符。
 
14public static String[] stripAll(String[] strs)
    对字符串数组中的每个字符串进行 strip(String str) ,然后返回。
    如果 strs 为 null 或 strs 长度为0,则返回 strs 本身
 
15public static String[] stripAll(String[] strs, String stripChars)
    对字符串数组中的每个字符串进行 strip(String str, String stripChars) ,然后返回。
    如果 strs 为 null 或 strs 长度为0,则返回 strs 本身
 
16public static boolean equals(String str1, String str2)
    比较两个字符串是否相等,如果两个均为空则也认为相等。
 
17public static boolean equalsIgnoreCase(String str1, String str2)
    比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。
 
18public static int indexOf(String str, char searchChar)
    返回字符 searchChar 在字符串 str 中第一次出现的位置。
    如果 searchChar 没有在 str 中出现则返回-1
    如果 str 为 null 或 "" ,则也返回-1
 
19public static int indexOf(String str, char searchChar, int startPos)
    返回字符 searchChar 从 startPos 开始在字符串 str 中第一次出现的位置。
    如果从 startPos 开始 searchChar 没有在 str 中出现则返回-1
    如果 str 为 null 或 "" ,则也返回-1
 
20public static int indexOf(String str, String searchStr)
    返回字符串 searchStr 在字符串 str 中第一次出现的位置。
    如果 str 为 null 或 searchStr 为 null 则返回-1
    如果 searchStr 为 "" ,且 str 为不为 null ,则返回0
    如果 searchStr 不在 str 中,则返回-1
 
21public static int ordinalIndexOf(String str, String searchStr, int ordinal)
    返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。
    如果 str=null 或 searchStr=null 或 ordinal<=0 则返回-1
    举例(*代表任意字符串):
      StringUtils.ordinalIndexOf(null, *, *) = -1
      StringUtils.ordinalIndexOf(*, null, *) = -1
      StringUtils.ordinalIndexOf("""", *) = 0
      StringUtils.ordinalIndexOf("aabaabaa""a"1) = 0
      StringUtils.ordinalIndexOf("aabaabaa""a"2) = 1
      StringUtils.ordinalIndexOf("aabaabaa""b"1) = 2
      StringUtils.ordinalIndexOf("aabaabaa""b"2) = 5
      StringUtils.ordinalIndexOf("aabaabaa""ab"1) = 1
      StringUtils.ordinalIndexOf("aabaabaa""ab"2) = 4
      StringUtils.ordinalIndexOf("aabaabaa""bc"1) = -1
      StringUtils.ordinalIndexOf("aabaabaa"""1) = 0
      StringUtils.ordinalIndexOf("aabaabaa"""2) = 0
 
22public static int indexOf(String str, String searchStr, int startPos)
    返回字符串 searchStr 从 startPos 开始在字符串 str 中第一次出现的位置。
    举例(*代表任意字符串):
      StringUtils.indexOf(null, *, *) = -1
      StringUtils.indexOf(*, null, *) = -1
      StringUtils.indexOf(""""0) = 0
      StringUtils.indexOf("aabaabaa""a"0) = 0
      StringUtils.indexOf("aabaabaa""b"0) = 2
      StringUtils.indexOf("aabaabaa""ab"0) = 1
      StringUtils.indexOf("aabaabaa""b"3) = 5
      StringUtils.indexOf("aabaabaa""b"9) = -1
      StringUtils.indexOf("aabaabaa""b", -1) = 2
      StringUtils.indexOf("aabaabaa"""2) = 2
      StringUtils.indexOf("abc"""9) = 3
 
23public static int lastIndexOf(String str, char searchChar)
    基本原理同18
 
24public static int lastIndexOf(String str, char searchChar, int startPos)
    基本原理同19
 
25public static int lastIndexOf(String str, String searchStr)
    基本原理同20
 
26public static int lastIndexOf(String str, String searchStr, int startPos)

List和String的非空判断的更多相关文章

  1. String的非空判断、Integer的非空判断、list的大小判断,对象的非空判断

    1.String的非空判断. StringUtils.isNotEmpty(String str); 2.Integer的非空判断. null != Integer ; 3.list的大小判断. li ...

  2. String的非空判断:str!=""的为空判断出错问题

    if(str!=null && str!= ""){}这是错误的判断 String str1 = ""; String str2 = new S ...

  3. java8 Optional优雅非空判断

    java8 Optional优雅非空判断 import java.util.ArrayList;import java.util.List;import java.util.Optional; pub ...

  4. java基础之----非空判断

    大家好,第一次写博客,一直想写博客,用于自我总结,也用于帮助新同学成长. 平常我们开发的时候,用到很多非空判断,但是很多同学用到的地方不是很准确,这里,我把自己平时遇到的坑跟大家说说.我废话不多,只想 ...

  5. 异常分类和异常的产生过程解析和Objects非空判断

    java.lang.Throwable类是java语言中所有错误的异常的超类. Exception:编译期异常,进行编译(写代码)java程序出现的问题 RuntimeExeption:运行期异常,j ...

  6. C/C++ 指针的非空判断

    一定要分得清楚C和C++的“空指针常量”不是一样的.C标准不保证NULL等于0,所以做指针非空判断时,应该用if(p != NULL):因为“上下文转换到bool值”的统一性,C++就应该用if(p) ...

  7. JAVAWEB servlet验证登录时进行完全的非空判断防止空值登录

    如果不进行完全的非空判断,那么对 "" 这种类型的空值就会导致直接登录 所以需要用下面的字符串处理方法对其进行判断 这样就可以防止空值登录了 容易出现的混淆错误: 这里的空值登录容 ...

  8. python字符串非空判断

    1. 字符串非空判断 2. list 非空判断

  9. proto3 不支持内建类型的非空判断即 hasXXX

    proto3 移除了内建类型的非空判断方法 即代码生成工具不会为 bool int 等类型生成has方法 有使用过proto2 或者其它rpc 框架的人都知道使用has 方法去判断消息里的值是否设置, ...

随机推荐

  1. HDFS查看文件的前几行-后几行-行数

    随机返回指定行数的样本数据hadoop fs -cat /test/gonganbu/scene_analysis_suggestion/* | shuf -n 5返回前几行的样本数据hadoop f ...

  2. js实现购物车左滑删除

    使用 js 和jquery动画实现购物车左滑,请引入jquery库,不然会报错哦! 首页编写页面,注意布局,滑动分成两部分,商品图片和信息放在一个布局,删除和移入收藏放在一起. 其中js用到了 tou ...

  3. 大整数四则运算(vector与数组两种版本实现)

    每逢大整数四则运算,都会怯懦,虽是算法竞赛必会的东西,也零散的学过,简单的总结过,但不成体系的东西心里一直没底. 所以今天消耗了大量的卡路里,啃了几套模板之后终于总结成了一套自己的模板 再也不用担心大 ...

  4. hdu3436 Queue-jumpers(Splay)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  5. UVA - 12295 最短路(迪杰斯特拉)——求按对称路线最短路条数

    题意: 给你一个n,然后给你一个n*n的正方形w[i][j],你需要找到一个从(1,1)点走到(n,n)点的最短路径数量.而且这个路径必须按照y=x对称 题解: 我们把左上角的点当作(0,0)点,右下 ...

  6. 13. 从0学ARM-Cortex-A9 RTC裸机程序编写

    一.RTC RTC(Real-Time Clock) 实时时钟. RTC是集成电路,通常称为时钟芯片.在一个嵌入式系统中,通常采用RTC来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关 ...

  7. linux下安装python3.7.2

    1.到python的官网去下载python3.7.2安装包,必须是Linux版本的 2.在/usr/tmp下下载python安装包 wget https://www.python.org/ftp/py ...

  8. [笔记]吞吐量(TPS)、QPS、并发数、响应时间(RT)概念

    开发的原因,需要对吞吐量(TPS).QPS.并发数.响应时间(RT)几个概念做下了解,查自百度百科,记录如下: 1. 响应时间(RT) 响应时间是指系统对请求作出响应的时间.直观上看,这个指标与人对软 ...

  9. 【ybt金牌导航1-2-5】【luogu P3287】优美玉米 / 方伯伯的玉米田

    优美玉米 / 方伯伯的玉米田 题目链接:ybt金牌导航1-2-5 / luogu P3287 题目大意 有一个数组,你可以每次给一个区间里面的值加一,要你使得最后剩下的最长单调不下降子序列最长. 思路 ...

  10. VMware虚拟化与Kubernetes(K8s)类比阐述-适合VMware用户

    概述 容器技术是最近几年非常热门的技术,它似乎就是为云端的应用量身定制的,所以它也被贴上了云原生应用 (Cloud Native Application) 技术的标签.目前最为流行的容器管理调度平台是 ...