前言:在前兩章講到Hutool工具類時,很多朋友說不如使用Apache提供的工具類,個人非常認同此觀點。再加上自己內建的工具類已有26個之多,實在想不到其他工具類,是以,接下來幾章,重點講解下Apache所提供工具類的用法,供個人學習及分享。
本文主要講述:字元串工具類Apache之org.apache.commons.lang3.StringUtils
一、判空isEmpty、isNotEmpty、isBlank、isNotBlank
isEmpty和isNotEmpty是判斷字元串是否為空,那isEmpty和isBlank有什麼差別呢?
isEmpty沒有忽略空格空串" ",是以對于" "的判空,兩者是截然相反的。
boolean flag1 = StringUtils.isEmpty("1");
boolean flag2 = StringUtils.isEmpty("");
boolean flag3 = StringUtils.isEmpty(" ");//false
boolean flag4 = StringUtils.isEmpty(null);
輸出:false true false true
boolean flag5 = StringUtils.isBlank("1");
boolean flag6 = StringUtils.isBlank("");
boolean flag7 = StringUtils.isBlank(" ");//true
boolean flag8 = StringUtils.isBlank(null);
輸出:false true true true
二、是否純數字StringUtils.isNumeric
boolean flag1 = StringUtils.isNumeric("1");
輸出:true
三、分割字元串StringUtils.split
分割字元串是比較常見的場景,很多朋友會問,為什麼不直接用String.split而要脫褲子放屁使用apache的StringUtils.split呢?
因為當字元串為空時,StringUtils.split傳回null,str.split會報空指針異常。
String[] arr = StringUtils.split("1,2,3",",");
輸出:1 2 3
String[] arr = StringUtils.split(null,",");
輸出:null
String[] arr = str1.split(",");
輸出:java.lang.NullPointerException
四、集合轉指定符号拼接的字元串StringUtils.join
List<String> list = Lists.newArrayList("1", "2", "3");
String str = StringUtils.join(list, ",");
輸出:1,2,3
五、将字元串首字元轉換為大寫StringUtils.capitalize
String str = StringUtils.capitalize("abc");
輸出:Abc
String str = StringUtils.uncapitalize("ABC");
輸出:aBC
六、字元串前後截取指定字元StringUtils.strip
String str = StringUtils.strip("|123|", "|");
輸出:123
七、判斷字元串與多個字元串進行比較StringUtils.equalsAny
boolean flag = StringUtils.equalsAny("123", "12", "123");
輸出:true
boolean flag = StringUtils.equalsAnyIgnoreCase("ABC", "aBC", "B");
輸出:true
八、判斷字元串是否以多個字元串中任意一個開頭StringUtils.startsWithAny
boolean flag = StringUtils.startsWithAny("123", new String[] { "2", "1", "" });
輸出:true
boolean flag = StringUtils.startsWithIgnoreCase("abc", "A");
輸出:true
九、截取字元串指定字元之前的内容StringUtils.left
String str = StringUtils.left("abc", 2);
輸出:ab
String str = StringUtils.right("abc", 2);
輸出:bc
十、删除字元串中空白字元
String str = StringUtils.deleteWhitespace(" 1 2 3 ");
輸出:123