Java工具類 Apache Commons:commons-lang 3.0.1 發布
commons-lang是一個很有用的開源包,它彌補了Java API在提供的基本處理方法上的不足。從它的命名上就可以看出它主要是一些公共的工具集合,比如對字符、數組的操作等等。它封裝了很多Java具體的操作,也就是如果要實現某功能需要你自己寫的代碼,它都替你封裝好,你只需調用它的方法就行了。
Apache Commons 團隊剛發布了 Commons Lang 3.0.1. 包含了9個改變和修復了6個bug。詳情請看:https://commons.apache.org/lang/changes-report.html#a3.0.1
下載地址:http://commons.apache.org/lang/download_lang.cgi
下面弄幾個簡單的例子:
1、合并兩個數組: org.apache.commons.lang. ArrayUtils
有時我們需要將兩個數組合并為一個數組,用ArrayUtils就非常方便,示例如下:
private static void testArr(){ String[] s1 = new String[]{"1","2","3"}; String[] s2 = new String[]{"a","b","c"}; String[] s = (String[])ArrayUtils.addAll(s1,s2); for (int i=0;i<s.length;i++){ System.out.println(s[i]); } String str = ArrayUtils.toString(s); str = str.substring(1,str.length()-1); System.out.println(str+">>"+str.length()); }
從ArrayUtils.addAll的源碼中也可以看到,它其實用了System.arraycopy來進行合并處理。
2、隨機數的生成
隨機數我們知道用Random就成,但如果我們不進行封裝的話,恐怕每次都要至少寫2行代碼才行,但commons-lang卻替你封裝好了,每次生成隨機數,只需像如下這樣調用即可:
RandomUtils.nextInt()
只需一行。
3、對字符串根據符號來切分
假設有這樣一個字符串
String str = “abc,haha,故鄉,賬號”;
現在對其按“,”來進行分割,得到每一個分割后的詞,通常我們都會這么寫:
String[] strArr = str.split(","); for (String s : strArr){ System.out.println(s); }
但commons-lang真是熱心,它對此也進行了處理,如下:
StrTokenizer strTokenizer = StrTokenizer.getTSVInstance(str); strTokenizer.setDelimiterChar(',');//表示按,來進行分割 while(strTokenizer.hasNext()){ System.out.println(strTokenizer.next()); }
在StrTokenizer采用了Iterator模式來進行,兩者雖然代碼量相差無幾,但我覺得
commons-lang處理得要更好,最起碼采用的設計模式思想讓事情變得更加簡潔,不是嗎?
上面三個只是commons-lang中的九牛一毛,只是讓大家對commons-lang有個大概的印象和了解,要想了解掌握更多的使用功能,就只能自己去研究研究了,好在commons-lang有源碼且代碼也很容易理解。