String 除了自身定义的那些方法外,还有个 StringUtils 类封装了许多对 String 的操作方法(都是静态方法),方便平时的开发工作。这里放个传送门把 String最细源码分析&StringBuffer原理对比,对 String 源码感兴趣的同学可以参考一下。好了,下面进入正文...
1.isEmpty:非空判断
public static boolean isEmpty(String str)
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
2.is(Not)Blank:非空判断(不含空字符)
public static boolean isBlank(String str)
public static boolean isNotBlank(String str)
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true // isEmpty此时是false
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
3.equals:相等判断
public static boolean equals(String str1,String str2)
StringUtils.equals(null, null) = true // null和null也是true
StringUtils.equals(null, "abc") = false
StringUtils.equals("abc", null) = false
StringUtils.equals("abc", "abc") = true
StringUtils.equals("abc", "ABC") = false // 这里可以用equalsIgnoreCase
4.contains(IgnoreCase):包含判断
public static boolean contains(String str,char searchChar) // 可以判断是否包含某个字符
public static boolean containsIgnoreCase(String str,String searchStr) // 可以判断是否包含某个字符串
StringUtils.contains(null, *) = false
StringUtils.contains(*, null) = false
StringUtils.contains("", "") = true
StringUtils.contains("abc", "") = true // 任何字符串对空字符都是包含
StringUtils.contains("abc", "a") = true
StringUtils.contains("abc", "z") = false
5.replace:替换
// 返回替换后的新字符串
public static String replace(String text,String searchString,String replacement)
StringUtils.replace(null, *, *) = null
StringUtils.replace("", *, *) = ""
StringUtils.replace("any", null, *) = "any"
StringUtils.replace("any", *, null) = "any" // 代替字符为null无效
StringUtils.replace("any", "", *) = "any"
StringUtils.replace("aba", "a", null) = "aba"
StringUtils.replace("aba", "a", "") = "b"
StringUtils.replace("aba", "a", "z") = "zbz" // all
6.join:连接数组成字符串
// 返回连接后的新字符串。separator是连接符
public static String join(Object[] array,String separator);
StringUtils.join(null, *) = null
StringUtils.join([], *) = ""
StringUtils.join([null], *) = ""
StringUtils.join(["a", "b", "c"], "--") = "a--b--c"
StringUtils.join(["a", "b", "c"], null) = "abc" // 可以中间什么分隔符都没有
StringUtils.join(["a", "b", "c"], "") = "abc"
StringUtils.join([null, "", "a"], ',') = ",,a"
7.trimToNull/Empty:去首尾空字符
移除字符串首尾char<32(ASCII<32)的字符,如果该字符串是null或empty(“”)
public static String trimToNull(String str) // 返回null
public static String trimToEmpty(String str) // 返回""
StringUtils.trimToNull(null) = null
StringUtils.trimToNull("") = null
StringUtils.trimToNull(" ") = null
StringUtils.trimToNull("abc") = "abc"
StringUtils.trimToNull(" abc ") = "abc"
StringUtils.trimToNull(" a b c ") = "a b c"
StringUtils.trimToEmpty(null) = ""
StringUtils.trimToEmpty("") = ""
StringUtils.trimToEmpty(" ") = ""
StringUtils.trimToEmpty("abc") = "abc"
StringUtils.trimToEmpty(" abc ") = "abc"
最后,再放一张图最为总结: