参考博客原址
https://www.cnblogs.com/yaya-yaya/p/6096539.html
https://www.cnblogs.com/zhaoyan001/p/6599477.html
StringUtils操作string安全不会报空指针
- 首先, StringUtils方法的操作对象是
java.lang.String
类型的对象,是对JDK提供的String类型操作方法的补充,并且是null
安全的(即如果输入参数String
为null
则不会抛出NullPointerException
,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。
例子
a.equals(b)
与
StringUtils.equals(CharSequence c1,CharSequence c2)
- 前者如果a为null,会报null point exception,那用stringutils后者这个封装好的工具类就不会。
StringUtils的isEmpty和isBlank
-
前者是要求没有任何字符,即str==null 或 str.length()==0返回true;
public static boolean isEmpty(final CharSequence cs) { return cs == null || cs.length() == 0; }
-
后者要求
public static boolean isBlank(final CharSequence cs) { int strLen; if (cs == null || (strLen = cs.length()) == 0) { return true; } for (int i = 0; i < strLen; i++) { if (!Character.isWhitespace(cs.charAt(i))) { return false; } } return true; }
显而易见包含了isEmpty的条件,且如果string中都是空白字符(无意义字符)也是返回true是blank的
isEmpty判断的范围更小,isBlank包含了isEmpty ,例如" "是blank的
""是blank的(我打了换行)
具体用法:
isEmpty
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
isNotEmpty
StringUtils.isNotEmpty(null) = false
StringUtils.isNotEmpty("") = false
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty("bob") = true
StringUtils.isNotEmpty(" bob ") = true
isBlank
判断某字符串是否为空或长度为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
isNotBlank
断某字符串是否不为空且长度不为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