判空我推荐用StringUtils.isBlank

开发 项目管理
在我们日常开发中,判空应该是最常用的一个操作了。因此项目中总是少不了依赖commons-lang3包。这个包为我们提供了两个判空的方法,分别是StringUtils.isEmpty(CharSequence cs)和StringUtils.isBlank(CharSequence cs)。

[[403141]]

在我们日常开发中,判空应该是最常用的一个操作了。因此项目中总是少不了依赖commons-lang3包。这个包为我们提供了两个判空的方法,分别是StringUtils.isEmpty(CharSequence cs)和StringUtils.isBlank(CharSequence cs)。我们分别来看看这两个方法有什么区别。

一、StringUtils.isEmpty

isEmpty的源码如下:

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

这个方法判断的是字符串是否为null或者其长度是否为零。

测试效果

  1. public class BlankAndEmpty { 
  2.  
  3.     public static void main(String[] args) { 
  4.          
  5.         System.out.println(StringUtils.isEmpty(null)); // true 
  6.         System.out.println(StringUtils.isEmpty("")); //true 
  7.         System.out.println(StringUtils.isEmpty(" ")); //false 
  8.         System.out.println(StringUtils.isEmpty("\t")); //false 
  9.         System.out.println(StringUtils.isEmpty("Java旅途")); //false 
  10.     } 

二、StringUtils.isBlank

isBlank的源码如下:

  1. public static boolean isBlank(CharSequence cs) { 
  2.     int strLen = length(cs); 
  3.     if (strLen == 0) { 
  4.         return true
  5.     } else { 
  6.         for(int i = 0; i < strLen; ++i) { 
  7.             if (!Character.isWhitespace(cs.charAt(i))) { 
  8.                 return false
  9.             } 
  10.         } 
  11.  
  12.         return true
  13.     } 

length(cs)的方法如下

  1. public static int length(CharSequence cs) { 
  2.     return cs == null ? 0 : cs.length(); 

这个方法除了判断字符串是否为null和长度是否为零,还判断了是否为空格,如果是空格也返回true。

测试效果

  1. public class BlankAndEmpty { 
  2.  
  3.     public static void main(String[] args) { 
  4.  
  5.         System.out.println(StringUtils.isBlank(null)); //true 
  6.         System.out.println(StringUtils.isBlank("")); //true 
  7.         System.out.println(StringUtils.isBlank(" ")); //true 
  8.         System.out.println(StringUtils.isBlank("\t")); //true 
  9.         System.out.println(StringUtils.isBlank("Java旅途")); //false 
  10.     } 

三、总结

  • isEmpty:如果是null或者“”则返回true。
  • isBlank:如果是null或者“”或者空格或者制表符则返回true。isBlank判空更加准确。

四、扩展

  1. 在实际开发中,除了isBlank判空的几种情况之外,其实“null”字符串我们也会当作空字符串处理。
  2. 我们需要判断几个字段同时不能为空,如果还用isBlank就显得有点累赘了。我们可以使用String的可变参数提供如下工具类。
  1. public class StringTool { 
  2.  
  3.     public static boolean isNullStr(String... args) { 
  4.         boolean falg = false
  5.         for (String arg : args) { 
  6.             if (StringUtils.isBlank(arg) || arg.equals("null")) { 
  7.                 falg = true
  8.                 return falg; 
  9.             } 
  10.         } 
  11.         return falg; 
  12.     } 

这个工具类的优点很明显,一方面判断了字符串“null”,另一方面对参数个数无限制,只要有一个参数是空则返回true。

本文转载自微信公众号「Java旅途」,可以通过以下二维码关注。转载本文请联系Java旅途公众号。

 

责任编辑:武晓燕 来源: Java旅途
相关推荐

2022-05-17 14:28:42

编程语言Julia代码

2020-04-10 10:22:12

Java判空编程语言

2020-09-25 11:30:20

Java判空代码

2021-08-17 11:02:24

isEmptyisBlankJava

2021-01-20 07:28:02

nullcollections对象

2021-09-06 08:59:00

程序员技能开发

2023-11-18 09:17:56

Optional代码

2012-02-07 15:32:25

投影仪推荐

2017-03-23 10:42:05

Pythonjava开发

2017-06-20 15:02:48

ChromeWebKit内核

2017-06-05 08:55:27

Python起源应用

2023-09-14 12:03:30

空指针判空

2021-11-23 06:02:20

APIOpenResty网关

2017-02-08 09:25:16

Spark分解推荐

2018-04-05 22:42:43

2024-03-04 08:45:37

C#空引用异常Nothing

2020-12-07 13:21:13

程序员历史Python

2020-06-12 09:07:03

技术总监数据库

2015-08-27 09:01:17

网络规划网络优化博文推荐

2021-12-02 06:34:34

GraylogELK日志
点赞
收藏

51CTO技术栈公众号