Java工具类:commons-lang 3.2.1 发布 发布
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有源码且代码也很容易理解。