StringUtils 常用方法 string 擷取 判斷空值,含 isEmpty()、 isNotEmpty()、 isNoneEmpty()、isAnyEmpty()、isBlank()、isNotBlank()、isNoneBlank()、isAnyBlank()、 isAllBlank()、isWhitespace()
一、常用的[截取字符串]的方法
各類用法:回傳 Sring 型別
(一)、指定[位置]截取字符串:
1. substring(String str ,int start)
說明:指定开始位置
StringUtils.substring(null, 2)); //null
StringUtils.substring("", 2)); //""
StringUtils.substring("abcdefg" , 0); //abcdefg
StringUtils.substring("abcdefg" , 2); //cdefg ,從左往右第二位開始截取
StringUtils.substring("abcdefg" , -2); //fg ,從右往左第二位開始截取
2.substring(String str , int start , int end)
說明:指定起始位置和结束位置,從起始位置開始截取到结束位置(但不包含结束位置)
StringUtils.substring(null , 2 , 4); //null
StringUtils.substring("" , 2 , 4); // ""
StringUtils.substring("abcdefg" , 0 , 0); // ""
StringUtils.substring("abcdefg" , 2 , 4); // cd
StringUtils.substring("abcdefg" , 2 , -5) //""
StringUtils.substring("abcdefghijk" , 2 , -3);// cdefgh
(二)、指定[分隔符]截取字符串
1.substringAfter(String str , String separator)
說明:從分隔符[第一次]出现的位置[向後]截取 ( 但不包含该分隔符 )
StringUtils.substringAfter("abcdefg" , "d"); //efg
StringUtils.substringAfter("abcdefg" , "cd");//efg
StringUtils.substringAfter("abcdefgabcdefg","d"); //efgabcdefg,從第一個分隔符號開始
StringUtils.substringAfter("abcdefg" , "g"); //""
StringUtils.substringAfter("abcdefg" , "m"); //"",分隔符不在要截取的字符串中,返回""
StringUtils.substringAfter("abcdefg" , ""); //abcdefg
StringUtils.substringAfter("abcdefg" , null);//""
2.substringAfterLast(String str , String separator)
說明:從分隔符[最後一次]出现的位置[向後]截取 ( 但不包含该分隔符 )
StringUtils.substringAfterLast("abcdefg" , "d"); //efg
StringUtils.substringAfterLast("abcdefgabcdefg" , "d"); //efg,從最後一個分隔符號開始向後截取
3.substringBefore(String str , String separator)
說明:從分隔符[第一次出]出现的位置[向前]截取
StringUtils.substringBefore("abcdefg", "d"); //abc
StringUtils.substringBefore("abcdefgabcdefg", "d");//abc
4.substringBeforeLast(String str , String separator)
說明:從分隔符[最后一次]出现的位置[向前]截取
StringUtils.substringBeforeLast("abcdefg", "d");//abc
StringUtils.substringBeforeLast("abcdefgabcdefg", "d"); //abcdefgabc,從最後一個分隔符開始向前截取號開始
5.substringBetween(String str , String tag)
說明:截取指定標記字符串之間的字符
StringUtils.substringBetween(null , "ch"); //null
StringUtils.substringBetween("" , ""); // ""
StringUtils.substringBetween("abcdefg" , ""); // ""
StringUtils.substringBetween("" , "tag");//null
StringUtils.substringBetween("abcdefg" , null); //null
StringUtils.substringBetween("abcdefgabcdefg" , "ab"); //cdefg
6.substringBetween(String str , String open , String close)
說明:截取兩個字符之間的字符。
StringUtils.substringBetween("abcdefg" ,"ab","fg"); //cde
二、判斷 String 是否為空
各類用法:回傳boolean型別
CharSequence是一個描述字符串结構的接口,其中有三个常見的子類別:Stirng、StringBuffer、StirngBuilder。
blank、empty、whitespace的區別為:
blank:包含空串(“”)、null值、空白符(空格” “,tab鑑跳8格空白(“\t”),回車符號(“\r”),換行(“\n”)等)
empty:包含空串(“”)、null值
whitespace:包含空串(“”)、空白符(空格” “,tab鑑跳8格空白(“\t”),回車符號(“\r”),換行(“\n”)等),但不包含null值.
(一) isEmpty() 與 isNotEmpty() 與 isNoneEmpty() 與 isAnyEmpty()
說明:判斷標準是 str==null 或 str.length()==0。
//isEmpty():
StringUtils.isEmpty(null) // true
StringUtils.isEmpty("") // true
StringUtils.isEmpty(" ") // false
StringUtils.isEmpty(" ")// false
StringUtils.isEmpty("\t") // false,tab鑑跳8格空白
StringUtils.isEmpty("\r") // false,回到本行最開始的位置
StringUtils.isEmpty("\n") // false,換行
StringUtils.isEmpty("a") // false
//isNotEmpty():結果為isEmpty()的相反( 同 ! isEmpty() )
StringUtils.isNotEmpty(null) // false
StringUtils.isNotEmpty("") // false
StringUtils.isNotEmpty(" ") // true
StringUtils.isNotEmpty(" ") // true
StringUtils.isNotEmpty("\t") // true,tab鑑跳8格空白
StringUtils.isNotEmpty("\r") // true,回到本行最開始的位置
StringUtils.isNotEmpty("\n") // true,換行
StringUtils.isNotEmpty("a") // true
//isNoneEmpty():是否[全部]都不包含[空值]或[空格](無ull)
StringUtils.isNoneEmpty(null, "a") // false
StringUtils.isNoneEmpty(null, null) // false
StringUtils.isNoneEmpty("", "a") // false
StringUtils.isNoneEmpty("a", "") // false
StringUtils.isNoneEmpty(" a ", null)// false
StringUtils.isNoneEmpty(" ", "a") // true
StringUtils.isNoneEmpty("a", "b") // true
//isAnyEmpty():是否包含[任何]空值(包含空("")或null)
StringUtils.isAnyEmpty(null, "a") // true
StringUtils.isAnyEmpty(null, null) // true
StringUtils.isAnyEmpty("", "a") // true
StringUtils.isAnyEmpty("a", "") // true
StringUtils.isAnyEmpty(" a ", null)// true
StringUtils.isAnyEmpty(" ", "a") // false
StringUtils.isAnyEmpty("a", "b") // false
//isAllEmpty():是否[全部]都是空值(包含空("")或null)
StringUtils.isAllEmpty(null, "a") // false
StringUtils.isAllEmpty(null, null) // true
StringUtils.isAllEmpty("", "a") // false
StringUtils.isAllEmpty("a", "") // false
StringUtils.isAllEmpty(" a ", null)// false
StringUtils.isAllEmpty(" ", "a") // false
StringUtils.isAllEmpty("a", "b") // false
(二) isBlank() 與 isNotBlank() 與 isNoneBlank() 與 isAnyBlank() 與 isAllBlank()
說明:判斷標準是 str==null 或 str.length()==0 與 Character.isWhitespace判斷不可有(空格、tab鑑、換行)。
//isBlank():
StringUtils.isBlank(null) // true
StringUtils.isBlank("") // true
StringUtils.isBlank(" ") // true
StringUtils.isBlank(" ")// true,tab鍵
StringUtils.isBlank("\t") // true,tab鑑跳8格空白
StringUtils.isBlank("\r") // true,回到本行最開始的位置
StringUtils.isBlank("\n") // true,換行
StringUtils.isBlank("a") // false
//isNotBlank():結果與isBlank()相反( 同 ! isBlank() )
StringUtils.isNotBlank(null) // false
StringUtils.isNotBlank("") // false
StringUtils.isNotBlank(" ") // false
StringUtils.isNotBlank(" ")// false,tab鍵
StringUtils.isNotBlank("\t") // false,tab鍵跳8格空白
StringUtils.isNotBlank("\r") // false,回到本行最開始的位置
StringUtils.isNotBlank("\n") // false,換行
StringUtils.isNotBlank("a") // true
//isNoneBlank():是否[全部]都不包含[空值]或[空格](無ull)
StringUtils.isNoneBlank(null, "a") // false
StringUtils.isNoneBlank(null, null) // false
StringUtils.isNoneBlank("", "a") // false
StringUtils.isNoneBlank("a", "") // false
StringUtils.isNoneBlank(" a ", null)// false
StringUtils.isNoneBlank(" ", "a") // false
StringUtils.isNoneBlank("a", "b") // true
//isAnyBlank():是否包含[任何]真空值(包含空格或空值)
StringUtils.isAnyBlank(null, "a") // true
StringUtils.isAnyBlank(null, null) // true
StringUtils.isAnyBlank("", "a") // true
StringUtils.isAnyBlank("a", "") // true
StringUtils.isAnyBlank(" a ", null)// true
StringUtils.isAnyBlank(" ", "a") // true
StringUtils.isAnyBlank("a", "b") // false
//isAllBlank():是否[全部]都是真空值(包含空格或空值)
StringUtils.isAllBlank("a", "b", "b") // false
StringUtils.isAllBlank("", "a", "b") // false
StringUtils.isAllBlank(" ", "a", "b") // false
StringUtils.isAllBlank(null, "a", "b")// false
StringUtils.isAllBlank(null, "", "a") // false
StringUtils.isAllBlank(null, "", " ")// true
(三) isWhitespace()
說明:判斷標準是Character.isWhitespace判斷不可有(空格、tab鑑、換行),無判斷null
StringUtils.isWhitespace(""); // true
StringUtils.isWhitespace(" "); // true
StringUtils.isWhitespace(" "); // true
StringUtils.isWhitespace("\t"); // true
StringUtils.isWhitespace("\r"); // true
StringUtils.isWhitespace("\n"); // true
StringUtils.isWhitespace(null); // false
StringUtils.isWhitespace("a"); // false