官方地址:
http://jakarta.apache.org/commons/lang/概述:
???標準的java庫并沒有提供足夠的處理他的核心類的方法,
Lang組件提供了這些擴展的方法
???lang 組件為java.lang API提供了一套幫助類。特別是String處理方法,基本的數字處理方法,對象反射,創建和序列化和系統屬性。另外他包含了一個可繼承的
enum類型,一個exception結構,對java.util.Date的基本加強以及一系列構建方法,比如hashCode,toString和equals
可以點擊下面的連接獲得體驗:
http://www.j2medev.com/bbs/dispbbs.asp?boardid=3&id=3835&star=1&page=3http://www.sentom.net/list.asp?id=76??
lang.*
????
String字符串處理-StringUtils,StringEscapeUtils,RondomStringUtils,Tokenizer,WordUtils.??? RandomStringUtils 顧名思義,它提供了一段文本,常用來做默認密碼的值。 StringEscapeUtils 包含了escape和unescape "java,javascript,html,xml和sql"的方法。 Tokenizer 是java.util.StringTokenizer的改良。
?? 另外,WordUtils是另一個String處理類。他在String的單詞層次上工作,比如,WordUtils.capitalize方法會將一段文本中的每個單詞都首字母大寫。WordUtils也包含了包裝文本的方法。
???
字符處理- CharSetUtils, CharSet, CharRange, CharUtils字符的處理也很重要,CharUtils因此而存在。CharSetUtils則是為了對字符串作批處理。注意,盡管CharSetUtils接受一個String參數,但卻把它當成一組字符。比如:CharSetUtils.delete("testtest", "tr")將刪除所有的t和所有的r,而不僅僅是tr這個字符串。
CharRange和CharSet是CharSetUtils內部將要用到的類。
JVM交互-SystemUtils, CharEncoding
SystemUtils是個很小的類,他將使你獲得你的JVM平臺信息變得更為簡單。比如:
SystemUtils.isJavaVersionAtLeast(1.3f)
。CharEncoding也是被用來做和jvm的交互,可能會被用來查看特定的環境上支持那種字符編碼。
序列化-SerializationUtils, SerializationException
?序列化并不難!一個簡單的工具類就可以刈除你的痛苦。而且,他提供一個方法通過反序列化和重序列化來克隆對象,這是個很老的java訣竅。
Assorted functions -ObjectUtils,ClassUtils,ArrayUtils,BooleanUtils
? ObjectUtils提供了許多對對象便利的操作,以及大部分的對java.lang.Object的方法的null-safe實現。
???ClassUtils提供了一套用于反射的幫助函數。值得留意的是在ClassUtils隱含的comparators,他可以對Class和package按名稱進行排序。這個排序僅僅是字典排序。
???接下來,我們介紹ArrayUtils.他有很多方法和這些方法的重載方法。這個類值得我們深入的了解一下。開始之前,我們假設所有的被提及的方法都被重載(無論是基本類型還是對象類型)。而且,‘xxx’代表了一個基本類型,有時候也包含了對象。
- ArrayUtils 為基本類型提供了一個單態的空疏組.這些將被Collections API的toArray()方法中用到, 也可以在用在那些希望在發生錯誤時返回空數組的方法中.
add(xxx[], xxx)
添加一個原始類型到一個數組, 自動調整數組的大小. 對象類型可以用.
clone(xxx[])
克隆一個基本類型或者對象數組.
contains(xxx[], xxx)
在一個基本類型或者對象類型的數組中查找一個基本類型或者對象類型.
getLength(Object)
返回一個數組的大小.如果參數不是一個數組,將會返回一個IllegalArgumentException異常。
- ?
hashCode(Object)
, equals(Object, Object)
, toString(Object)
indexOf(xxx[], xxx)
和indexOf(xxx[], xxx, int)
是仿照String的相關方法,?但是他用來處理primitive/Object數組.?另外,?lastIndexOf?系列的方法也存在.
isEmpty(xxx[])
判斷一個數組是否為null或者空.
isSameLength(xxx[], xxx[])
判斷2個數組的大小是否相等.
- 除了添加的方法,?這里也提供了2類刪除的方法.?第一種是根據索引刪除:remove(xxx[], int),?第二種刪除數組中的第一個值:remove(xxx[], xxx).?
- ?
reverse(xxx[])
?翻轉一個數組.
- The
subarray(xxx[], int, int)
取出一個大數組的一部分.
- 基本類型和基本類型的包裝類之間的轉換可以通過
toObject(xxx[])
和toPrimitive(Xxx[])
方法.
???ArrayUtils.toMap(Object[])用來將一個數組轉化為一個map,比如:
?????? Map colorMap = MapUtils.toMap(new String[][] {{
?????????? {"RED", "#FF0000"},
?????????? {"GREEN", "#00FF00"},
?????????? {"BLUE", "#0000FF"}
?????? });
???? BooleanUtils,對這個類,或許你有時候會對他的
BooleanUtils.toBoolean(String)方法感興趣。異常-IllegalClassException, IncompleteArgumentException, NotImplementedException, NullArgumentException, UnhandledException
?lang.builder.*
??提供了HashCodeBuilder,EqualsBuilder, CompareToBuilder, ToStringBuilder。筆者在項目中經常用到HashCodeBuilder,具體用法參照文章前面給出的連接。
lang.enums.* (formerly lang.enum)
???他主要的功能就是為你的常量賦值,并且給定他們的順序. For example:
public final class ColorEnum extends Enum {
public static final ColorEnum RED = new ColorEnum("Red");
public static final ColorEnum GREEN = new ColorEnum("Green");
public static final ColorEnum BLUE = new ColorEnum("Blue");
private ColorEnum(String color) {
super(color);
}
public static ColorEnum getEnum(String color) {
return (ColorEnum) getEnum(ColorEnum.class, color);
}
public static Iterator iterator() {
return iterator(ColorEnum.class);
}
}
?