Java工具类:commons-lang 3.2.1 发布 发布

jopen 10年前

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());    }

从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有源码且代码也很容易理解。