注意isNotEmpty()和isNotBlank()的区别
过去的字符串判空:if("".equals(str) || str == null)。现在使用工具类StringUtils就可以实现:
1.判断字符串是否为空isEmpty()和isBlank()。
isEmpty()方法:

1 StringUtils.isEmpty(null) = true 2 StringUtils.isEmpty("") = true 3 StringUtils.isEmpty(" ") = false 4 StringUtils.isEmpty("bob") = false 5 StringUtils.isEmpty(" bob ") = false
isBlank()方法:

1 StringUtils.isBlank(null) = true 2 StringUtils.isBlank("") = true 3 StringUtils.isBlank(" ") = true 4 StringUtils.isBlank("bob") = false 5 StringUtils.isBlank(" bob ") = false
2.判断字符串是否非空isNotEmpty()和isNotBlank()。
isNotEmpty()方法:

1 StringUtils.isNotEmpty(null) = false 2 StringUtils.isNotEmpty("") = false 3 StringUtils.isNotEmpty(" ") = true 4 StringUtils.isNotEmpty("bob") = true 5 StringUtils.isNotEmpty(" bob ") = true
isNotBlank()方法:

1 StringUtils.isNotBlank(null) = false 2 StringUtils.isNotBlank("") = false 3 StringUtils.isNotBlank(" ") = false 4 StringUtils.isNotBlank("bob") = true 5 StringUtils.isNotBlank(" bob ") = true
3.移除字符串两端的空字符串,制表符char <= 32如: 等,trim()。如果字符串是null,返回null,不为null时正常去除左右空格。

1 StringUtils.trim(null) = null 2 StringUtils.trim("") = "" 3 StringUtils.trim(" ") = "" 4 StringUtils.trim("abc") = "abc" 5 StringUtils.trim(" abc ") = "abc"
4.trimToNull()如果传入的参数在去除空格后是null或"",则返回null,否则返回去除空格后的字符串;trimToEmpty()如果传入的参数是null则返回null,否则返回去除空格后的字符串

1 public static String trimToNull(String str) { 2 String ts = trim(str); 3 return isEmpty(ts)?null:ts; 4 } 5 6 public static String trimToEmpty(String str) { 7 return str == null?"":str.trim(); 8 } 9 10 public static boolean isEmpty(CharSequence cs) { 11 return cs == null || cs.length() == 0; 12 }
5.字符串比对方法equals(s1,s2),两个字符串都可为空,不会报异常。

1 StringUtils.equals(null, null) = true 2 StringUtils.equals(null, "abc") = false 3 StringUtils.equals("abc", null) = false 4 StringUtils.equals("abc", "abc") = true 5 StringUtils.equals("abc", "ABC") = false
6.字符串比较(忽略大小写进行比较),equalsIgnoreCase(s1,s2),可用于验证码比对等。

1 StringUtils.equalsIgnoreCase(null, null) = true 2 StringUtils.equalsIgnoreCase(null, "abc") = false 3 StringUtils.equalsIgnoreCase("abc", null) = false 4 StringUtils.equalsIgnoreCase("abc", "abc") = true 5 StringUtils.equalsIgnoreCase("abc", "ABC") = true
7.查找第二个字符串在第一个字符串中第一次出现的下标并返回indexOf(s1,s2)。

1 StringUtils.indexOf(null, *) = -1 2 StringUtils.indexOf("", *) = -1 3 StringUtils.indexOf("aabaabaa", 'a') = 0 4 StringUtils.indexOf("aabaabaa", 'b') = 2
8.查找第二个字符串在第一个字符串中第ordinal次出现的下标并返回ordinalIndexOf(s1, s2, ordinal)。

1 StringUtils.ordinalIndexOf(null, *, *) = -1 2 StringUtils.ordinalIndexOf(*, null, *) = -1 3 StringUtils.ordinalIndexOf("", "", *) = 0 4 StringUtils.ordinalIndexOf("aabaabaa", "a", 1) = 0 5 StringUtils.ordinalIndexOf("aabaabaa", "a", 2) = 1 6 StringUtils.ordinalIndexOf("aabaabaa", "b", 1) = 2 7 StringUtils.ordinalIndexOf("aabaabaa", "b", 2) = 5 8 StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1 9 StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4 10 StringUtils.ordinalIndexOf("aabaabaa", "", 1) = 0 11 StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0
9.查找第二个字符串在第一个字符串中最后一次出现的下标并返回lastIndexOf(),这个方法有多种重载方式。
10.第一个字符串中是否包含第二个字符串contains(s1,s2)。

1 StringUtils.contains(null, *) = false 2 StringUtils.contains("", *) = false 3 StringUtils.contains("abc", 'a') = true 4 StringUtils.contains("abc", 'z') = false
11.字符串截取substring(str,start),从start下标的位置开始截取str字符串。如果start>0则从前往后数然后截取,如果start<0则从后往前数然后截取。

1 StringUtils.substring(null, *) = null 2 StringUtils.substring("", *) = "" 3 StringUtils.substring("abc", 0) = "abc" 4 StringUtils.substring("abc", 2) = "c" 5 StringUtils.substring("abc", 4) = "" 6 StringUtils.substring("abc", -2) = "bc" 7 StringUtils.substring("abc", -4) = "abc"
12.字符串分割String[] split(str, separatorChars),根据separatorChars字符串分割str字符串。

1 StringUtils.split(null, *) = null 2 StringUtils.split("", *) = [] 3 StringUtils.split("abc def", null) = ["abc", "def"] 4 StringUtils.split("abc def", " ") = ["abc", "def"] 5 StringUtils.split("abc def", " ") = ["abc", "def"] 6 StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
13.字符串连接String join(数组)和String join(Object[] array, char separator)。

1 StringUtils.join(null) = null 2 StringUtils.join([]) = "" 3 StringUtils.join([null]) = "" 4 StringUtils.join(["a", "b", "c"]) = "abc" 5 StringUtils.join([null, "", "a"]) = "a"

1 StringUtils.join(null, *) = null 2 StringUtils.join([], *) = "" 3 StringUtils.join([null], *) = "" 4 StringUtils.join(["a", "b", "c"], ';') = "a;b;c" 5 StringUtils.join(["a", "b", "c"], null) = "abc" 6 StringUtils.join([null, "", "a"], ';') = ";;a"
14.删除以特定字符串remove开头的字符串,如果没有则不删除remove(str,remove)。

1 StringUtils.removeStart(null, *) = null 2 StringUtils.removeStart("", *) = "" 3 StringUtils.removeStart(*, null) = * 4 StringUtils.removeStart("www.domain.com", "www.") = "domain.com" 5 StringUtils.removeStart("domain.com", "www.") = "domain.com" 6 StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com" 7 StringUtils.removeStart("abc", "") = "abc"
15.右边自动补齐String rightPad(String, int, char),例如用于生成订单号等。

1 StringUtils.rightPad(null, *, *) = null 2 StringUtils.rightPad("", 3, 'z') = "zzz" 3 StringUtils.rightPad("bat", 3, 'z') = "bat" 4 StringUtils.rightPad("bat", 5, 'z') = "batzz" 5 StringUtils.rightPad("bat", 1, 'z') = "bat" 6 StringUtils.rightPad("bat", -1, 'z') = "bat"
16.首字母大写capitalize(String)。

1 StringUtils.capitalize(null) = null 2 StringUtils.capitalize("") = "" 3 StringUtils.capitalize("cat") = "Cat" 4 StringUtils.capitalize("cAt") = "CAt"
17.反向大小写,即大写字母小写,小写字母大写swap(String)。

1 StringUtils.swapCase(null) = null 2 StringUtils.swapCase("") = "" 3 StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
18.判断字符串是否由字母组成isAlpha()。

1 StringUtils.isAlpha(null) = false 2 StringUtils.isAlpha("") = false 3 StringUtils.isAlpha(" ") = false 4 StringUtils.isAlpha("abc") = true 5 StringUtils.isAlpha("ab2c") = false 6 StringUtils.isAlpha("ab-c") = false
19.字符串翻转reverse(String)。

1 StringUtils.reverse(null) = null 2 StringUtils.reverse("") = "" 3 StringUtils.reverse("bat") = "tab"