StringUtils是org.apache.commons.lang jar包里面的类方法,当输入参数String为null则不会抛出NullPointerException,而是做了相应处理,null是安全的。而JDK中String类里面的方法会抛出NullPointerException。下面我介绍StringUtils一些常用的方法,它和String类的方法有很多相似的地方。开发的时候用StringUtils的jar才可以用这个类里面的方法,其实StringUtils类的方法也可以用String类里面方法实现,开发的时候根据需要来选择用哪一类的方法吧。
1.public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是str == null 或 str.length() == 0。但是字符串为空格为true。
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
源码:
public static boolean isEmpty(String str) { return str == null || str.length() == 0; }
2.public static boolean isNotEmpty(String str)
判断某字符串是否不为空,与isEmpty(String str)相反。
3.public static boolean isBlank(String str)
判断字符串是否为空,字符长度为0同时也包括空白符的字符串,这个比isEmpty范围更广。
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
源码:
public static boolean isBlank(String str) { int strLen; if (str == null || (strLen = str.length()) == 0) { return true; } for (int i = 0; i < strLen; i++) { if ((Character.isWhitespace(str.charAt(i)) == false)) { return false; } } return true; }
改写源码方法:
public static boolean isBlank(String str) { if (str == null || ( str.trim().length()) == 0) { return true; } return false; /*int strLen; if (str == null || (strLen = str.length()) == 0) { return true; } for (int i = 0; i < strLen; i++) { if ((Character.isWhitespace(str.charAt(i)) == false)) { return false; } } return true;*/ }
4. public static boolean isNotBlank(String str)
判断字符串是否不为空,字符长度不为0同时不为空白符的字符串,与isBlank(String str) 方法相反。
5. public static String trim(String str)
去掉字符串两端的控制符(char <= 32),如果输入为null则返回null。注意:字符串中间有控制符则不会去掉,trim()方法在String里面也有这个方法,但是两者有一定的区别,当对null进行相关操作的话,StringUtils.trim(null)会返回为null,但是调用null.trim()则会抛出java.lang.NullPointerException异常。
StringUtils.trim(null) = null
StringUtils.trim("") = ""
StringUtils.trim(" ") = ""
StringUtils.trim(" f ") = ""
StringUtils.trim("abc") = "abc"
StringUtils.trim("abc def") = "abc def"
StringUtils.trim(" abc ") = "abc"
源码:
public static String trim(String str) {
return str == null ? null : str.trim();
}
6.public static String strip(String str)
去掉字符串两端的空白符(whitespace),如果变为null,则返回null
7. public static String swapCase(String str)
把字符串中的字符大写转换为小写,小写转换为大写。
StringUtils.swapCase(null) = null
StringUtils.swapCase("") = ""
StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"