org.apache.commons.lang.StringUtils
API請參考:http://commons.apache.org/lang/api-3.1/org/apache/commons/lang3/StringUtils.html
方法:StringUtils.isBlank(str);判斷非空,當str爲null 或者空值是返回true,函數StringUtils.isNotBlank(str)的功能與之相反
方法:StringUtils.isEmpty(str);當str==null或str.length()==0返回true ,StringUtils.isNotEmpty(str);與之相反
方法:StringUtils.trim(str) 、StringUtils.trimToEmpty(str)、StringUtils.trimToNull(str)都爲去除首位空格,StringUtils.trimToEmpty(str)當str全爲空格時結果爲空,StringUtils.trimToNull(str)當str全爲空時結果爲null。
方法:StringUtils.abbreviate(str,width),StringUtils.abbreviate(str,offset,width)當指定字符串超過指定長度時,用省略號代替。
String str = "This is a test of the abbreviation!";
System.out.println(StringUtils.abbreviate(str, 20));//This is a test of...
System.out.println(StringUtils.abbreviate(str, 5,20));//...is a test of t...
System.out.println(StringUtils.abbreviate(str, 5,100));//This is a test of the abbreviation!
方法:StringUtils.chomp(str)去除尾部換行符
方法:StringUtils.repeat(str,count) 重複str,count次
方法:StringUtils.reverse(str)反轉字符串
方法:StringUtils.isNumeric(str)判斷字符串是不是全部由數字組成
方法:StringUtils.isAlpha( str)判斷字符串是不是全部由字母組成
方法:StringUtils.isAlphanumeric( testString )判斷字符串是不是全部由字符串或數字組成
方法:StringUtils.substringBetween(testString,fromString,toString ):取得兩字符
之間的字符串方法:StringUtils.substringAfter( ):取得指定字符串後的字符串
方法:StringUtils.substringBefore( ):取得指定字符串之前的字符串
方法:StringUtils.substringBeforeLast( ):取得最後一個指定字符串之前的字符串
方法:StringUtils.substringAfterLast( ):取得最後一個指定字符串之後的字符串
//如果第二個參數爲null去空格(否則去掉字符串2邊一樣的字符,到不一樣爲止)
//System.out.println(StringUtils.strip("fsfsdf", "f"));//如果第二個參數爲null只去前面空格(否則去掉字符串前面一樣的字符,到不一樣爲止)
//System.out.println(StringUtils.stripStart("ddsuuu ", "d"));
//如果第二個參數爲null只去後面空格,(否則去掉字符串後面一樣的字符,到不一樣爲止)
//System.out.println(StringUtils.stripEnd("dabads", "das"));
//對數組沒個字符串進行去空格。
//ArrayToList(StringUtils.stripAll(new String[]{" 中華 ", "民 國 ", "共和 "}));
//如果第二個參數爲null.對數組每個字符串進行去空格。(否則去掉數組每個元素開始和結尾一樣的字符)
//ArrayToList(StringUtils.stripAll(new String[]{" 中華 ", "民 國", "國共和國"}, "國"));
//查找,判斷~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//判斷2個字符串是否相等相等,Null也相等
//System.out.println(StringUtils.equals(null, null));
//不區分大小寫比較
//System.out.println(StringUtils.equalsIgnoreCase("abc", "ABc"));
//查找,不知道怎麼弄這麼多查找,很多不知道區別在哪?費勁~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//普通查找字符,如果一參數爲null或者""返回-1
//System.out.println(StringUtils.indexOf(null, "a"));
//從指定位置(三參數)開始查找,本例從第2個字符開始查找k字符
//System.out.println(StringUtils.indexOf("akfekcd中華", "k", 2));
//未發現不同之處
//System.out.println(StringUtils.ordinalIndexOf("akfekcd中華", "k", 2));
//查找,不區分大小寫
//System.out.println(StringUtils.indexOfIgnoreCase("adfs", "D"));
//從指定位置(三參數)開始查找,不區分大小寫
//System.out.println(StringUtils.indexOfIgnoreCase("adfs", "a", 3));
//從後往前查找
//System.out.println(StringUtils.lastIndexOf("adfas", "a"));
//未理解,此結果爲2
//System.out.println(StringUtils.lastIndexOf("d餓abasdafs我", "a", 3));
//未解,此結果爲-1
//System.out.println(StringUtils.lastOrdinalIndexOf("yksdfdht", "f", 2));
//從後往前查,不區分大小寫
//System.out.println(StringUtils.lastIndexOfIgnoreCase("sdffet", "E"));
//未解,此結果爲1
//System.out.println(StringUtils.lastIndexOfIgnoreCase("efefrfs看", "F" , 2));
//檢查是否查到,返回boolean,null返回假
//System.out.println(StringUtils.contains("sdf", "dg"));
//檢查是否查到,返回boolean,null返回假,不區分大小寫
//System.out.println(StringUtils.containsIgnoreCase("sdf", "D"));
//檢查是否有含有空格,返回boolean
//System.out.println(StringUtils.containsWhitespace(" d"));
//查詢字符串跟數組任一元素相同的第一次相同的位置
//System.out.println(StringUtils.indexOfAny("absfekf", new String[]{"f", "b"}));
//查詢字符串中指定字符串(參數二)出現的次數
//System.out.println(StringUtils.indexOfAny("afefes", "e"));
//查找字符串中是否有字符數組中相同的字符,返回boolean
//System.out.println(StringUtils.containsAny("asfsd", new char[]{'k', 'e', 's'}));
//未理解與lastIndexOf不同之處。是否查到,返回boolean
//System.out.println(StringUtils.containsAny("啡f咖啡", "咖"));
//未解
//System.out.println(StringUtils.indexOfAnyBut("seefaff", "af"));
//判斷字符串中所有字符,都是出自參數二中。
//System.out.println(StringUtils.containsOnly("中華華", "華"));
//判斷字符串中所有字符,都是出自參數二的數組中。
//System.out.println(StringUtils.containsOnly("中華中", new char[]{'中', '華'}));
//判斷字符串中所有字符,都不在參數二中。
//System.out.println(StringUtils.containsNone("中華華", "國"));
//判斷字符串中所有字符,都不在參數二的數組中。
//System.out.println(StringUtils.containsNone("中華中", new char[]{'中', '達人'}));
//從後往前查找字符串中與字符數組中相同的元素第一次出現的位置。本例爲4
//System.out.println(StringUtils.lastIndexOfAny("中國人民共和國", new String[]{"國人", "共和"}));
//未發現與indexOfAny不同之處 查詢字符串中指定字符串(參數二)出現的次數
//System.out.println(StringUtils.countMatches("中國人民共和中國", "中國"));
//檢查是否CharSequence的只包含Unicode的字母。空將返回false。一個空的CharSequence(長()= 0)將返回true
//System.out.println(StringUtils.isAlpha("這是幹什麼的2"));
//檢查是否只包含Unicode的CharSequence的字母和空格('')。空將返回一個空的CharSequence假(長()= 0)將返回true。
//System.out.println(StringUtils.isAlphaSpace("NBA直播 "));
//檢查是否只包含Unicode的CharSequence的字母或數字。空將返回false。一個空的CharSequence(長()= 0)將返回true。
//System.out.println(StringUtils.isAlphanumeric("NBA直播"));
//如果檢查的Unicode CharSequence的只包含字母,數字或空格('')。空將返回false。一個空的CharSequence(長()= 0)將返回true。
//System.out.println(StringUtils.isAlphanumericSpace("NBA直播"));
//檢查是否只包含ASCII可CharSequence的字符。空將返回false。一個空的CharSequence(長()= 0)將返回true。
//System.out.println(StringUtils.isAsciiPrintable("NBA直播"));
//檢查是否只包含數值。
//System.out.println(StringUtils.isNumeric("NBA直播"));
//檢查是否只包含數值或者空格
//System.out.println(StringUtils.isNumericSpace("33 545"));
//檢查是否只是空格或""。
//System.out.println(StringUtils.isWhitespace(" "));
//檢查是否全是英文小寫。
//System.out.println(StringUtils.isAllLowerCase("kjk33"));
//檢查是否全是英文大寫。
//System.out.println(StringUtils.isAllUpperCase("KJKJ"));
//交集操作~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//去掉參數2字符串中在參數一中開頭部分共有的部分,結果爲:人民共和加油
//System.out.println(StringUtils.difference("中國加油", "中國人民共和加油"));
//統計2個字符串開始部分共有的字符個數
//System.out.println(StringUtils.indexOfDifference("ww.taobao", "www.taobao.com"));
//統計數組中各個元素的字符串開始都一樣的字符個數
//System.out.println(StringUtils.indexOfDifference(new String[] {"中國加油", "中國共和", "中國人民"}));
//取數組每個元素共同的部分字符串
//System.out.println(StringUtils.getCommonPrefix(new String[] {"中國加油", "中國共和", "中國人民"}));
//統計參數一中每個字符與參數二中每個字符不同部分的字符個數
//System.out.println(StringUtils.getLevenshteinDistance("中國共和發國人民", "共和國"));
//判斷開始部分是否與二參數相同
//System.out.println(StringUtils.startsWith("中國共和國人民", "中國"));
//判斷開始部分是否與二參數相同。不區分大小寫
//System.out.println(StringUtils.startsWithIgnoreCase("中國共和國人民", "中國"));
//判斷字符串開始部分是否與數組中的某一元素相同
//System.out.println(StringUtils.startsWithAny("abef", new String[]{"ge", "af", "ab"}));
//判斷結尾是否相同
//System.out.println(StringUtils.endsWith("abcdef", "def"));
//判斷結尾是否相同,不區分大小寫
//System.out.println(StringUtils.endsWithIgnoreCase("abcdef", "Def"));
//字符串截取~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//截取指定位置的字符,null返回null.""返回""
//System.out.println(StringUtils.substring("國民黨", 2));
//截取指定區間的字符
//System.out.println(StringUtils.substring("中國人民共和國", 2, 4));
//從左截取指定長度的字符串
//System.out.println(StringUtils.left("說點什麼好呢", 3));
//從右截取指定長度的字符串
//System.out.println(StringUtils.right("說點什麼好呢", 3));
//從第幾個開始截取,三參數表示截取的長度
//System.out.println(StringUtils.mid("說點什麼好呢", 3, 2));
//截取到等於第二個參數的字符串爲止
//System.out.println(StringUtils.substringBefore("說點什麼好呢", "好"));
//從左往右查到相等的字符開始,保留後邊的,不包含等於的字符。本例:什麼好呢
//System.out.println(StringUtils.substringAfter("說點什麼好呢", "點"));
//這個也是截取到相等的字符,但是是從右往左.本例結果:說點什麼好
//System.out.println(StringUtils.substringBeforeLast("說點什麼好點呢", "點"));
//這個截取同上是從右往左。但是保留右邊的字符
//System.out.println(StringUtils.substringAfterLast("說點什麼好點呢?", "點"));
//截取查找到第一次的位置,和第二次的位置中間的字符。如果沒找到第二個返回null。本例結果:2010世界盃在
//System.out.println(StringUtils.substringBetween("南非2010世界盃在南非,在南非", "南非"));
//返回參數二和參數三中間的字符串,返回數組形式
//ArrayToList(StringUtils.substringsBetween("[a][b][c]", "[", "]"));
//分割~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//用空格分割成數組,null爲null
//ArrayToList(StringUtils.split("中華 人民 共和"));
//以指定字符分割成數組
//ArrayToList(StringUtils.split("中華 ,人民,共和", ","));
//以指定字符分割成數組,第三個參數表示分隔成數組的長度,如果爲0全體分割
//ArrayToList(StringUtils.split("中華 :人民:共和", ":", 2));
//未發現不同的地方,指定字符分割成數組
//ArrayToList(StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-"));
//未發現不同的地方,以指定字符分割成數組,第三個參數表示分隔成數組的長度
//ArrayToList(StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2));
//分割,但" "不會被忽略算一個元素,二參數爲null默認爲空格分隔
//ArrayToList(StringUtils.splitByWholeSeparatorPreserveAllTokens(" ab de fg ", null));
//同上,分割," "不會被忽略算一個元素。第三個參數代表分割的數組長度。
//ArrayToList(StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null, 3));
//未發現不同地方,分割
//ArrayToList(StringUtils.splitPreserveAllTokens(" ab de fg "));
//未發現不同地方,指定字符分割成數組
//ArrayToList(StringUtils.splitPreserveAllTokens(" ab de fg ", null));
//未發現不同地方,以指定字符分割成數組,第三個參數表示分隔成數組的長度
//ArrayToList(StringUtils.splitPreserveAllTokens(" ab de fg ", null, 2));
//以不同類型進行分隔
//ArrayToList(StringUtils.splitByCharacterType("AEkjKr i39:。中文"));
//未解
//ArrayToList(StringUtils.splitByCharacterTypeCamelCase("ASFSRules234"));
//拼接~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//將數組轉換爲字符串形式
//System.out.println(StringUtils.concat(getArrayData()));
//拼接時用參數一得字符相連接.注意null也用連接符連接了
//System.out.println(StringUtils.concatWith(",", getArrayData()));
//也是拼接。未發現區別
//System.out.println(StringUtils.join(getArrayData()));
//用連接符拼接,爲發現區別
//System.out.println(StringUtils.join(getArrayData(), ":"));
//拼接指定數組下標的開始(三參數)和結束(四參數,不包含)的中間這些元素,用連接符連接
//System.out.println(StringUtils.join(getArrayData(), ":", 1, 3));
//用於集合連接字符串.用於集合
//System.out.println(StringUtils.join(getListData(), ":"));
//移除,刪除~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//刪除所有空格符
//System.out.println(StringUtils.deleteWhitespace(" s 中 你 4j"));
//移除開始部分的相同的字符
//System.out.println(StringUtils.removeStart("www.baidu.com", "www."));
//移除開始部分的相同的字符,不區分大小寫
//System.out.println(StringUtils.removeStartIgnoreCase("www.baidu.com", "WWW"));
//移除後面相同的部分
//System.out.println(StringUtils.removeEnd("www.baidu.com", ".com"));
//移除後面相同的部分,不區分大小寫
//System.out.println(StringUtils.removeEndIgnoreCase("www.baidu.com", ".COM"));
//移除所有相同的部分
//System.out.println(StringUtils.remove("www.baidu.com/baidu", "bai"));
//移除結尾字符爲"\n", "\r", 或者 "\r\n".
//System.out.println(StringUtils.chomp("abcrabc\r"));
//也是移除,未解。去結尾相同字符
//System.out.println(StringUtils.chomp("baidu.com", "com"));
//去掉末尾最後一個字符.如果是"\n", "\r", 或者 "\r\n"也去除
//System.out.println(StringUtils.chop("wwe.baidu"));
//替換~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//替換指定的字符,只替換第一次出現的
//System.out.println(StringUtils.replaceOnce("www.baidu.com/baidu", "baidu", "hao123"));
//替換所有出現過的字符
//System.out.println(StringUtils.replace("www.baidu.com/baidu", "baidu", "hao123"));
//也是替換,最後一個參數表示替換幾個
//System.out.println(StringUtils.replace("www.baidu.com/baidu", "baidu", "hao123", 1));
//這個有意識,二三參數對應的數組,查找二參數數組一樣的值,替換三參數對應數組的值。本例:baidu替換爲taobao。com替換爲net
//System.out.println(StringUtils.replaceEach("www.baidu.com/baidu", new String[]{"baidu", "com"}, new String[]{"taobao", "net"}));
//同上,未發現不同
//System.out.println(StringUtils.replaceEachRepeatedly("www.baidu.com/baidu", new String[]{"baidu", "com"}, new String[]{"taobao", "net"}));
//這個更好,不是數組對應,是字符串參數二和參數三對應替換.(二三參數不對應的話,自己看後果)
//System.out.println(StringUtils.replaceChars("www.baidu.com", "bdm", "qo"));
//替換指定開始(參數三)和結束(參數四)中間的所有字符
//System.out.println(StringUtils.overlay("www.baidu.com", "hao123", 4, 9));
//添加,增加~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//複製參數一的字符串,參數二爲複製的次數
//System.out.println(StringUtils.repeat("ba", 3));
//複製參數一的字符串,參數三爲複製的次數。參數二爲複製字符串中間的連接字符串
//System.out.println(StringUtils.repeat("ab", "ou", 3));
//如何字符串長度小於參數二的值,末尾加空格補全。(小於字符串長度不處理返回)
//System.out.println(StringUtils.rightPad("海川", 4));
//字符串長度小於二參數,末尾用參數三補上,多於的截取(截取補上的字符串)
//System.out.println(StringUtils.rightPad("海川", 4, "河流啊"));
//同上在前面補全空格
//System.out.println(StringUtils.leftPad("海川", 4));
//字符串長度小於二參數,前面用參數三補上,多於的截取(截取補上的字符串)
//System.out.println(StringUtils.leftPad("海川", 4, "大家好"));
//字符串長度小於二參數。在兩側用空格平均補全(測試後面補空格優先)
//System.out.println(StringUtils.center("海川", 3));
//字符串長度小於二參數。在兩側用三參數的字符串平均補全(測試後面補空格優先)
//System.out.println(StringUtils.center("海川", 5, "流"));
//只顯示指定數量(二參數)的字符,後面以三個點補充(參數一截取+三個點=二參數)
//System.out.println(StringUtils.abbreviate("中華人民共和國", 5));
//2頭加點這個有點亂。本例結果: ...ijklmno
//System.out.println(StringUtils.abbreviate("abcdefghijklmno", 12, 10));
//保留指定長度,最後一個字符前加點.本例結果: ab.f
//System.out.println(StringUtils.abbreviateMiddle("abcdef", ".", 4));
//轉換,刷選~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//轉換第一個字符爲大寫.如何第一個字符是大寫原始返回
//System.out.println(StringUtils.capitalize("Ddf"));
//轉換第一個字符爲大寫.如何第一個字符是大寫原始返回
//System.out.println(StringUtils.uncapitalize("DTf"));
//反向轉換,大寫變小寫,小寫變大寫
//System.out.println(StringUtils.swapCase("I am Jiang, Hello"));
//將字符串倒序排列
//System.out.println(StringUtils.reverse("中國人民"));
//根據特定字符(二參數)分隔進行反轉
//System.out.println(StringUtils.reverseDelimited("中:國:人民", ':'));
}
//將數組轉換爲List
private static void ArrayToList(String[] str){
System.out.println(Arrays.asList(str) + " 長度:" + str.length);
}
//獲得集合數據
private static List getListData(){
List list = new ArrayList();
list.add("你好");
list.add(null);
list.add("他好");
list.add("大家好");
return list;
}
//獲得數組數據
private static String[] getArrayData(){
return (String[]) getListData().toArray(new String[0]);
}