天天看點

100個Java工具類之27:字元串工具類Apache之StringUtils

作者:一名小小程式員

前言:在前兩章講到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           
100個Java工具類之27:字元串工具類Apache之StringUtils