commons.lang包共包含了17个实用的类:
ArrayUtils – 用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等;
BitField – 用于操作位元,提供了一些方便而安全的方法;
BooleanUtils – 用于操作和转换boolean或者Boolean及相应的数组;
CharEncoding – 包含了Java环境支持的字符编码,提供是否支持某种编码的判断;
CharRange – 用于设定字符范围并做相应检查;
CharSet – 用于设定一组字符作为范围并做相应检查;
CharSetUtils – 用于操作CharSet;
CharUtils – 用于操作char值和Character对象;
ClassUtils – 用于对Java类的操作,不使用反射;
ObjectUtils – 用于操作Java对象,提供null安全的访问和其他一些功能;
RandomStringUtils – 用于生成随机的字符串;
SerializationUtils – 用于处理对象序列化,提供比一般Java序列化更高级的处理能力;
StringEscapeUtils – 用于正确处理转义字符,产生正确的Java、JavaScript、HTML、XML和SQL代码;
StringUtils – 处理String的核心类,提供了相当多的功能;
SystemUtils – 在java.lang.System基础上提供更方便的访问,如用户路径、Java版本、时区、操作系统等判断;
Validate – 提供验证的操作,有点类似assert断言;
WordUtils – 用于处理单词大小写、换行等。
管窥Commons
我最感兴趣的是String Util类、StringUtils、RandomStringUtils和CharSetUtils。他们是String Taglib的主干部分,也是我花功夫最多的类。自然,我觉得它们非常有用,每天都在用他们。关于StringUtils类最值得关注的特性如下:
-
capitalise(String):一个String大写化函数(这里保留了英式拼法),它不像大多数字符串库那样使用toUpperCase,而是恰当地使用了toTitleCase。
-
join(Object[], String):它把对象数组里每个对象的toString合并成带有指定定界符的单个String。所以join( , ";")的结果是"A;B;C"。Iterator也可以被连接。
-
split(String, String):它能分割带有定界符的文本。其功能没有StringTokenizer(它不能一次处理多组定界符)强大,但是能够很快、很容易地应用于很多场合。它是上一个合并方法的反向操作:split("A;B;C",";") => {"A", "B", "C"}。这个分割方法现在已经可以在 JDK 1.4的java.lang.String里找到了。
-
reverseDelimitedString(String, String):这是个很有趣的方法。它能以定界符为基础颠倒一段文本。所以:reverseDelimitedString("org.apache.commons")的结果就变成了"commons.apache.org."
-
replace(String, String, String):这个String替换方法常常是很让人期待的。JDK1.4能够使用正规表达式解决这个问题,但是StringUtils类所提供的基于String更简单的版本更常用。