StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。
除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx()
下面分别对一些常用方法做简要介绍:
StringUtils类 在 org.apache.commons.lang.StringUtils包下
[b]String isEmpty(String str) 和 isNotEmpty(String str)[/b]
System.out.println(StringUtils.isEmpty(null)); // true
System.out.println(StringUtils.isEmpty("")); // true
System.out.println(StringUtils.isEmpty(" ")); // false 注意:这里的isEmpty并没有做空格处理
System.out.println(StringUtils.isEmpty(" \t \n \f \r ")); // false
System.out.println(StringUtils.isEmpty(" \b ")); // false
System.out.println(StringUtils.isEmpty("X-rapido")); // false
System.out.println(StringUtils.isEmpty(" X ")); // false
System.out.println(StringUtils.isNotEmpty(null)); // false
System.out.println(StringUtils.isNotEmpty("")); // false
System.out.println(StringUtils.isNotEmpty(" ")); // true 注意:这里的isNotEmpty并没有做空格处理
System.out.println(StringUtils.isNotEmpty(" \t \n \f \r ")); // true
System.out.println(StringUtils.isNotEmpty(" \b ")); // true
System.out.println(StringUtils.isNotEmpty("X-rapido")); // true
System.out.println(StringUtils.isNotEmpty(" X ")); // true
[b]String isBlank(String str) 和 isNotBlank(String str)[/b]
包含去空格
System.out.println(StringUtils.isBlank(null)); // true
System.out.println(StringUtils.isBlank("")); // true
System.out.println(StringUtils.isBlank(" ")); // true
System.out.println(StringUtils.isBlank(" \t \n \f \r ")); // true
System.out.println(StringUtils.isBlank(" \b ")); // false
System.out.println(StringUtils.isBlank("X-rapido")); // false
System.out.println(StringUtils.isBlank(" X ")); // false
System.out.println(StringUtils.isNotBlank(null)); // false
System.out.println(StringUtils.isNotBlank("")); // false
System.out.println(StringUtils.isNotBlank(" ")); // false
System.out.println(StringUtils.isNotBlank(" \t \n \f \r ")); // false
System.out.println(StringUtils.isNotBlank(" \b ")); // true
System.out.println(StringUtils.isNotBlank("X-rapido")); // true
System.out.println(StringUtils.isNotBlank(" X ")); // true
[b]String trim(String str) 和 trimToNull(String str) 和 trimToEmpty(String str) [/b]
System.out.println(StringUtils.trim(null)); // null
System.out.println(StringUtils.trim("")); // ""
System.out.println(StringUtils.trim(" ")); // ""
System.out.println(StringUtils.trim(" \t \n \f \r ")); // ""
System.out.println(StringUtils.trim(" \b ")); // ""
System.out.println(StringUtils.trim("X-rapido")); // "X-rapido"
System.out.println(StringUtils.trim(" X ")); // "X"
System.out.println(StringUtils.trimToNull(null)); // null
System.out.println(StringUtils.trimToNull("")); // null
System.out.println(StringUtils.trimToNull(" ")); // null
System.out.println(StringUtils.trimToNull(" \t \n \f \r ")); // null
System.out.println(StringUtils.trimToNull(" \b ")); // null
System.out.println(StringUtils.trimToNull("X-rapido")); // "X-rapido"
System.out.println(StringUtils.trimToNull(" X ")); // "X"
System.out.println(StringUtils.trimToEmpty(null)); // ""
System.out.println(StringUtils.trimToEmpty("")); // ""
System.out.println(StringUtils.trimToEmpty(" ")); // ""
System.out.println(StringUtils.trimToEmpty(" \t \n \f \r ")); // ""
System.out.println(StringUtils.trimToEmpty(" \b ")); // ""
System.out.println(StringUtils.trimToEmpty(" \bsss ")); // sss
System.out.println(StringUtils.trimToEmpty("X-rapido")); // "X-rapido"
System.out.println(StringUtils.trimToEmpty(" X ")); // "X"
[b]String strip(String str) 和 stripToNull(String str) 和 stripToEmpty(String str) [/b]
System.out.println(StringUtils.strip(null)); // null
System.out.println(StringUtils.strip("")); // ""
System.out.println(StringUtils.strip(" ")); // ""
System.out.println(StringUtils.strip(" \t \n \f \r ")); // ""
System.out.println(StringUtils.strip(" \b ")); // " "
System.out.println(StringUtils.strip(" \bsss ")); // sss
System.out.println(StringUtils.strip("X-rapido")); // "X-rapido"
System.out.println(StringUtils.strip(" X ")); // "X"
System.out.println(StringUtils.stripToNull(null)); // null
System.out.println(StringUtils.stripToNull("")); // null
System.out.println(StringUtils.stripToNull(" ")); // null
System.out.println(StringUtils.stripToNull(" \t \n \f \r ")); // null
System.out.println(StringUtils.stripToNull(" \b ")); // " "
System.out.println(StringUtils.stripToNull(" \bsss ")); // sss
System.out.println(StringUtils.stripToNull("X-rapido")); // "X-rapido"
System.out.println(StringUtils.stripToNull(" X ")); // "X"
System.out.println(StringUtils.stripToEmpty(null)); // ""
System.out.println(StringUtils.stripToEmpty("")); // ""
System.out.println(StringUtils.stripToEmpty(" ")); // ""
System.out.println(StringUtils.stripToEmpty(" \t \n \f \r ")); // ""
System.out.println(StringUtils.stripToEmpty(" \b ")); // " "
System.out.println(StringUtils.stripToEmpty(" \bsss ")); // sss
System.out.println(StringUtils.stripToEmpty("X-rapido")); // "X-rapido"
System.out.println(StringUtils.stripToEmpty(" X ")); // "X"
[b]String strip(String str, String stripChars) [/b]
去掉 str 两端的在 stripChars 中的字符。如果 str 为 null 或等于"" ,则返回它本身,如果 stripChars 为null 或"" ,则返回 strip(String str) 。
[b]String stripStart(String str, String stripChars) [/b]
和11相似,去掉 str 前端的在 stripChars 中的字符。
[b]String stripEnd(String str, String stripChars) [/b]
和11相似,去掉 str 末端的在 stripChars 中的字符。
[b]String[] stripAll(String[] strs) [/b]
对字符串数组中的每个字符串进行 strip(String str) ,然后返回。 如果 strs 为 null 或 strs 长度为0,则返回 strs 本身。
[b]String[] stripAll(String[] strs, String stripChars) [/b]
对字符串数组中的每个字符串进行 strip(String str, String stripChars) ,然后返回。如果 strs 为 null 或 strs 长度为0,则返回 strs 本身
[b]boolean equals(String str1, String str2) [/b]
比较两个字符串是否相等,如果两个均为空则也认为相等。
[b]boolean equalsIgnoreCase(String str1, String str2)[/b]
比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。
[b]int indexOf(String str, char searchChar)[/b]
返回字符 searchChar 在字符串 str 中第一次出现的位置。如果 searchChar 没有在 str 中出现则返回-1,如果 str 为 null 或 "" ,则也返回-1
[b]int indexOf(String str, char searchChar, int startPos) [/b]
返回字符 searchChar 从 startPos 开始在字符串 str 中第一次出现的位置。如果从 startPos 开始 searchChar 没有在 str 中出现则返回-1,如果 str 为null 或 "" ,则也返回-1
[b]int indexOf(String str, String searchStr)[/b]
返回字符串 searchStr 在字符串 str 中第一次出现的位置。如果 str 为 null 或 searchStr 为 null 则返回-1,如果 searchStr 为 "" ,且 str 为不为null ,则返回0, 如果 searchStr 不在 str 中,则返回-1
[b]int ordinalIndexOf(String str, String searchStr, int ordinal)[/b]
返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。如果 str=null 或 searchStr=null 或 ordinal<=0 则返回-1
System.out.println(StringUtils.ordinalIndexOf(null, "a", 1)); // -1
System.out.println(StringUtils.ordinalIndexOf("a", null, 1)); // -1
System.out.println(StringUtils.ordinalIndexOf("", "", 1)); // 0
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "a", 1)); // 0
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "a", 2)); // 1
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "b", 1)); // 2
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "b", 2)); // 5
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "ab", 1)); // 1
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "ab", 2)); // 4
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "bc", 1)); // -1
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "", 1)); // 0
System.out.println(StringUtils.ordinalIndexOf(" aabaabaa ", "", 2)); // 0
[b]int indexOf(String str, String searchStr, int startPos)[/b]
返回字符串 searchStr 从 startPos 开始在字符串 str 中第一次出现的位置。
System.out.println(StringUtils.indexOf(null, "a", 1)); // -1
System.out.println(StringUtils.indexOf("a", null, 1)); // -1
System.out.println(StringUtils.indexOf("", "", 1)); // 0
System.out.println(StringUtils.indexOf("aabaabaa", "a", 1)); // 1
System.out.println(StringUtils.indexOf("aabaabaa", "a", 2)); // 3
System.out.println(StringUtils.indexOf("aabaabaa", "b", 1)); // 2
System.out.println(StringUtils.indexOf("aabaabaa", "b", 2)); // 2
System.out.println(StringUtils.indexOf("aabaabaa", "ab", 1)); // 4
System.out.println(StringUtils.indexOf("aabaabaa", "ab", 2)); // 1
System.out.println(StringUtils.indexOf("aabaabaa", "bc", 1)); // -1
System.out.println(StringUtils.indexOf("aabaabaa", "", 1)); // 1
System.out.println(StringUtils.indexOf(" aabaabaa ", "", 2)); // 2
[b]int lastIndexOf(String str, char searchChar) [/b]
基本原理同int indexOf(String str, char searchChar)
[b]int lastIndexOf(String str, char searchChar, int startPos)[/b]
基本原理同int indexOf(String str, char searchChar, int startPos)
[b]int lastIndexOf(String str, String searchStr) [/b]
基本原理同int indexOf(String str, String searchStr)
[b]int lastIndexOf(String str, String searchStr, int startPos)[/b]
基本原理同int indexOf(String str, String searchStr, int startPos)