org.apache.commons.lang3.StringUtils
lang3是Apache Commons 团队发布的工具包,要求jdk版本在1.5以上,相对于 org.apache.commons.lang.StringUtils 来说完全支持java5的特性,废除了一些旧的API。该版本无法兼容旧有版本,于是为了避免冲突改名为lang3。
一、字符串非空 / 为空判定
StringUtils.isNotEmpty(" "); // true
StringUtils.isNotBlank(" "); // false
StringUtils.isEmpty(" "); //false
StringUtils.isBlank(" "); //true
所以如果不希望字符串非空判断被空格干扰,最好用isNotBlank()方法。
二、去除两端空格操作
StringUtils.trim() 去掉字符串两端的空字符,如果输入为null则返回null。
StringUtils.trimToNull() 去掉字符串两端的空字符,如果输入null或"",则返回null
StringUtils.trimToEmpty() 去掉字符串两端的空字符,如果输入null或"",则返回""
三、去除字符串中的所有空格
StringUtils.deleteWhitespace(" ab c ") = "abc"
四、比较两个字符串是否相等
如果两个均为空则也认为相等。
StringUtils.equals(String str1, String str2);
// equalsAny方法比较字符串与给定的数组中的任何一个字符串相等就返回true
StringUtils.equalsAny(String str1, CharSequence[] char);
StringUtils.equalsAny(String str1, String str2 , String str3...);
// 比较两个字符串是否相等并且忽略大小写
StringUtils.equalsIgnoreCase(String str1, String str2);
五、移除字符串中匹配部分,仅当匹配部分位于起始或结束位置
StringUtils.removeStart("www.domain.com", "www.") = "domain.com"
StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
StringUtils.removeStartIgnoreCase("www.domain.com", "WWW.") = "domain.com"
StringUtils.removeEnd("www.domain.com", ".com") = "www.domain"
StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"
StringUtils.removeEndIgnoreCase("www.domain.com", ".com") = "www.domain"
六、移除字符串中所有匹配部分
StringUtils.remove("queued", "ue") = "qd"
七、字符串匹配查找
StringUtils.indexOf(String str, char searchChar);
返回字符 searchChar 在字符串 str 中第一次出现的位置。
如果 searchChar 没有在 str 中出现则返回-1,
如果 str 为 null 或 "" ,则也返回-1
StringUtils.indexOf(String str, char searchChar, int startPos);
返回字符 searchChar 从 startPos 开始在字符串 str 中第一次出现的位置。
如果从 startPos 开始 searchChar 没有在 str 中出现则返回-1,
如果 str 为 null 或 "" ,则也返回-1
StringUtils.indexOf(String str, String searchStr);
返回字符串 searchStr 在字符串 str 中第一次出现的位置。
如果 str 为 null 或 searchStr 为 null 则返回-1,
如果 searchStr 为 "" ,且 str 为不为 null ,则返回0,
如果 searchStr 不在 str 中,则返回-1
StringUtils.ordinalIndexOf(String str, String searchStr, int ordinal);
返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。
如果 str=null 或 searchStr=null 或 ordinal<=0 则返回-1
StringUtils.indexOf(String str, String searchStr, int startPos)
返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。
如果 str=null 或 searchStr=null 或 ordinal<=0 则返回-1
基本原理同上
StringUtils.lastIndexOf(String str, char searchChar);
StringUtils.lastIndexOf(String str, char searchChar, int startPos);
StringUtils.lastIndexOf(String str, String searchStr);
StringUtils.lastIndexOf(String str, String searchStr, int startPos);
八、字符串包含判断
StringUtils.contains(String str, String searchStr);
StringUtils.containsIgnoreCase(String str,String searchStr);
str是原始字符串,searchStr是待搜索的字符串,此方法是检查字符串str中是否包含字符串searchStr,如果str为null,则返回false。
九、字符串拼接
public static String join(Object[] array, String separator)
十、判断是否仅包含数字
StringUtils.isNumeric("123") = true
StringUtils.isNumeric("12 3") = false
StringUtils.isNumeric("ab2c") = false
十一、equalsAny
判断某个字符串变量是否等于某几个常量值中的任意一个
String foodType = "牛";
if (StringUtils.equalsAny(foodType, "鸡", "鱼", "牛", "猪")) {
System.out.println("----这是动物,执行荤菜相关操作----");
} else {
System.out.println("----这是植物,执行素菜相关操作----");
}