Java工具類:commons-lang 3.2.1 發布 發布

jopen 10年前發布 | 24K 次閱讀 commons-lang

commons-lang是一個很有用的開源包,它彌補了Java API在提供的基本處理方法上的不足。從它的命名上就可以看出它主要是一些公共的工具集合,比如對字符、數組的操作等等。它封裝了很多Java具體的操作,也就是如果要實現某功能需要你自己寫的代碼,它都替你封裝好,你只需調用它的方法就行了。

該版本兼容 3.1 版本,改進內容包括:

o LANG-937:  Fix missing Hamcrest dependency in Ant Build
o LANG-941:  Test failure in LocaleUtilsTest when building with JDK 8
o LANG-942:  Test failure in FastDateParserTest and FastDateFormat_ParserTest
             when building with JDK8. Thanks to Bruno P. Kinoshita,
             Henri Yandell.
o LANG-938:  Build fails with test failures when building with JDK 8

下載地址: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());

}</pre>

從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);

}</pre>

但commons-lang真是熱心,它對此也進行了處理,如下:

StrTokenizer strTokenizer = StrTokenizer.getTSVInstance(str);

strTokenizer.setDelimiterChar(',');//表示按,來進行分割

while(strTokenizer.hasNext()){

System.out.println(strTokenizer.next());

}</pre>

在StrTokenizer采用了Iterator模式來進行,兩者雖然代碼量相差無幾,但我覺得

commons-lang處理得要更好,最起碼采用的設計模式思想讓事情變得更加簡潔,不是嗎?

上面三個只是commons-lang中的九牛一毛,只是讓大家對commons-lang有個大概的印象和了解,要想了解掌握更多的使用功能,就只能自己去研究研究了,好在commons-lang有源碼且代碼也很容易理解。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!