# Java之StringUtils的常用方法 ~~~xml <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> ~~~ StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。 除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx() 下面分别对一些常用方法做简要介绍: ### 1.public static boolean isEmpty(String str) 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0 下面是示例: StringUtils.isEmpty(null) = true StringUtils.isEmpty("") = true StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理 StringUtils.isEmpty(" ") = false StringUtils.isEmpty("bob") = false StringUtils.isEmpty(" bob ") = false ### 2.public static boolean isNotEmpty(String str) 判断某字符串是否非空,等于 !isEmpty(String str) 下面是示例: StringUtils.isNotEmpty(null) = false StringUtils.isNotEmpty("") = false StringUtils.isNotEmpty(" ") = true StringUtils.isNotEmpty(" ") = true StringUtils.isNotEmpty("bob") = true StringUtils.isNotEmpty(" bob ") = true ### 3.public static boolean isBlank(String str) 判断某字符串是否为空或长度为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 ### 4.public static boolean isNotBlank(String str) 判断某字符串是否不为空且长度不为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 ### 5.public static String trim(String str) 去掉字符串两端的控制符(control characters, char <= 32) , 如果输入为 null 则返回null 下面是示例: StringUtils.trim(null) = null StringUtils.trim("") = "" StringUtils.trim(" ") = "" StringUtils.trim(" \b \t \n \f \r ") = "" StringUtils.trim(" \n\tss \b") = "ss" StringUtils.trim(" d d dd ") = "d d dd" StringUtils.trim("dd ") = "dd" StringUtils.trim(" dd ") = "dd" ### 6.public static String trimToNull(String str) 去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null 或"",则返回 null 下面是示例: StringUtils.trimToNull(null) = null StringUtils.trimToNull("") = null StringUtils.trimToNull(" ") = null StringUtils.trimToNull(" \b \t \n \f \r ") = null StringUtils.trimToNull(" \n\tss \b") = "ss" StringUtils.trimToNull(" d d dd ") = "d d dd" StringUtils.trimToNull("dd ") = "dd" StringUtils.trimToNull(" dd ") = "dd" ### 7.public static String trimToEmpty(String str) 去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null 或 "" ,则返回 "" 下面是示例: StringUtils.trimToEmpty(null) = "" StringUtils.trimToEmpty("") = "" StringUtils.trimToEmpty(" ") = "" StringUtils.trimToEmpty(" \b \t \n \f \r ") = "" StringUtils.trimToEmpty(" \n\tss \b") = "ss" StringUtils.trimToEmpty(" d d dd ") = "d d dd" StringUtils.trimToEmpty("dd ") = "dd" StringUtils.trimToEmpty(" dd ") = "dd" ### 8.public static String strip(String str) 去掉字符串两端的空白符(whitespace) ,如果输入为 null 则返回 null 下面是示例(注意和 trim() 的区别): StringUtils.strip(null) = null StringUtils.strip("") = "" StringUtils.strip(" ") = "" StringUtils.strip(" \b \t \n \f \r ") = "\b" StringUtils.strip(" \n\tss \b") = "ss \b" StringUtils.strip(" d d dd ") = "d d dd" StringUtils.strip("dd ") = "dd" StringUtils.strip(" dd ") = "dd" ### 9.public static String stripToNull(String str) 去掉字符串两端的空白符(whitespace) ,如果变为 null 或"",则返回 null 下面是示例(注意和 trimToNull() 的区别): StringUtils.stripToNull(null) = null StringUtils.stripToNull("") = null StringUtils.stripToNull(" ") = null StringUtils.stripToNull(" \b \t \n \f \r ") = "\b" StringUtils.stripToNull(" \n\tss \b") = "ss \b" StringUtils.stripToNull(" d d dd ") = "d d dd" StringUtils.stripToNull("dd ") = "dd" StringUtils.stripToNull(" dd ") = "dd" ### 10.public static String stripToEmpty(String str) 去掉字符串两端的空白符(whitespace) ,如果变为 null 或"" ,则返回"" 下面是示例(注意和 trimToEmpty() 的区别): StringUtils.stripToNull(null) = "" StringUtils.stripToNull("") = "" StringUtils.stripToNull(" ") = "" StringUtils.stripToNull(" \b \t \n \f \r ") = "\b" StringUtils.stripToNull(" \n\tss \b") = "ss \b" StringUtils.stripToNull(" d d dd ") = "d d dd" StringUtils.stripToNull("dd ") = "dd" StringUtils.stripToNull(" dd ") = "dd" 以下方法只介绍其功能,不再举例: <hr/> ### 11.public static String strip(String str, String stripChars) 去掉 str 两端的在 stripChars 中的字符。 如果 str 为 null 或等于"" ,则返回它本身; 如果 stripChars 为 null 或"" ,则返回 strip(String str) 。 ### 12.public static String stripStart(String str, String stripChars) 和11相似,去掉 str 前端的在 stripChars 中的字符。 ### 13.public static String stripEnd(String str, String stripChars) 和11相似,去掉 str 末端的在 stripChars 中的字符。 ### 14.public static String[] stripAll(String[] strs) 对字符串数组中的每个字符串进行 strip(String str) ,然后返回。 如果 strs 为 null 或 strs 长度为0,则返回 strs 本身 ### 15.public static String[] stripAll(String[] strs, String stripChars) 对字符串数组中的每个字符串进行 strip(String str, String stripChars) ,然后返回。 如果 strs 为 null 或 strs 长度为0,则返回 strs 本身 ### 16.public static boolean equals(String str1, String str2) 比较两个字符串是否相等,如果两个均为空则也认为相等。 ### 17.public static boolean equalsIgnoreCase(String str1, String str2) 比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。 ### 18.public static int indexOf(String str, char searchChar) 返回字符 searchChar 在字符串 str 中第一次出现的位置。 如果 searchChar 没有在 str 中出现则返回-1, 如果 str 为 null 或 "" ,则也返回-1 ### 19.public static int indexOf(String str, char searchChar, int startPos) 返回字符 searchChar 从 startPos 开始在字符串 str 中第一次出现的位置。 如果从 startPos 开始 searchChar 没有在 str 中出现则返回-1, 如果 str 为 null 或 "" ,则也返回-1 ### 20.public static int indexOf(String str, String searchStr) 返回字符串 searchStr 在字符串 str 中第一次出现的位置。 如果 str 为 null 或 searchStr 为 null 则返回-1, 如果 searchStr 为 "" ,且 str 为不为 null ,则返回0, 如果 searchStr 不在 str 中,则返回-1 ### 21.public static int ordinalIndexOf(String str, String searchStr, int ordinal) 返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。 如果 str=null 或 searchStr=null 或 ordinal<=0 则返回-1 举例(*代表任意字符串): StringUtils.ordinalIndexOf(null, *, *) = -1 StringUtils.ordinalIndexOf(*, null, *) = -1 StringUtils.ordinalIndexOf("", "", *) = 0 StringUtils.ordinalIndexOf("aabaabaa", "a", 1) = 0 StringUtils.ordinalIndexOf("aabaabaa", "a", 2) = 1 StringUtils.ordinalIndexOf("aabaabaa", "b", 1) = 2 StringUtils.ordinalIndexOf("aabaabaa", "b", 2) = 5 StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1 StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4 StringUtils.ordinalIndexOf("aabaabaa", "bc", 1) = -1 StringUtils.ordinalIndexOf("aabaabaa", "", 1) = 0 StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0 ### 22.public static int indexOf(String str, String searchStr, int startPos) 返回字符串 searchStr 从 startPos 开始在字符串 str 中第一次出现的位置。 举例(*代表任意字符串): StringUtils.indexOf(null, *, *) = -1 StringUtils.indexOf(*, null, *) = -1 StringUtils.indexOf("", "", 0) = 0 StringUtils.indexOf("aabaabaa", "a", 0) = 0 StringUtils.indexOf("aabaabaa", "b", 0) = 2 StringUtils.indexOf("aabaabaa", "ab", 0) = 1 StringUtils.indexOf("aabaabaa", "b", 3) = 5 StringUtils.indexOf("aabaabaa", "b", 9) = -1 StringUtils.indexOf("aabaabaa", "b", -1) = 2 StringUtils.indexOf("aabaabaa", "", 2) = 2 StringUtils.indexOf("abc", "", 9) = 3 ### 23.public static int lastIndexOf(String str, char searchChar) 基本原理同18 ### 24.public static int lastIndexOf(String str, char searchChar, int startPos) 基本原理同19 ### 25.public static int lastIndexOf(String str, String searchStr) 基本原理同20 ### 26.public static int lastIndexOf(String str, String searchStr, int startPos)
Java之StringUtils的常用方法
最新推荐文章于 2025-03-28 20:23:39 发布