天天看點

commons-lang包常用工具類的基本使用

目錄

比較常用的工具類有:

ArrayUtils常用方法:

StringUtils常用方法:

ObjectUtils常用方法:

RandomUtils常用方法:

NumberUtils 常用方法:

DateUtils常用方法:

SystemUtils常用方法:

Commons Lang這一組API也是提供一些基礎的、通用的操作和處理,如自動生成toString()的結果、自動實作hashCode()和equals()方法、數組操作、枚舉、日期和時間的處理等等。

Maven依賴:

<dependency>

    <groupId>org.apache.commons</groupId>

    <artifactId>commons-lang3</artifactId>

    <version>3.7</version>

</dependency>

比較常用的工具類有:

ArrayUtils:數組工具類,提供數組拷貝、查找、反轉等功能

StringUtils:提供字元串操作,對null是安全的,字元串查找、替換、分割、去空格等操作

ObjectUtils: 用于操作Java對象,提供null安全的通路和其他一些功能

RandomUtils:随機數工具類,獲得随機整數、小數、字元串等

NumberUtils:數值工具類,數值類型轉換等操作

DateUtils:日期工具類

擴充:

SystemUtils: 在java.lang.System基礎上提供更友善的通路,如使用者路徑、Java版本、時區、作業系統等判斷

EnumUtils:枚舉工具類

ReflectionToStringBuilder/ToStringBuilder:重寫toString方法

EqualsBuilder/HashCodeBuilder:提供了友善的方法來覆寫equals() 和hashCode()方法

ArrayUtils常用方法:

add(int[] array, int index, int element) // 增加元素

addAll(int[] array1, int... array2) // 并集操作,合并數組

clone(int[] array) // 克隆數組

contains(int[] array, int valueToFind) // 查找元素是否存在數組中

isEmpty(int[] array) // 判斷是否為空,length=0或null都屬于

isEquals(Object array1, Object array2)// 比較兩個數組是否相等

isSameLength(int[] array1, int[] array2) // 判斷兩個數組長度是否相等

isSameType(Object array1, Object array2) // 判斷兩個數組類型是否相等,注意int和Integer比較時不相等

indexOf(int[] array, int valueToFind) // 查找數組元素位置

lastIndexOf(int[] array, int valueToFind) // 查找數組元素最後出現位置

nullToEmpty(Object[] array) // 将null數組轉為對應類型的空數組,如果array不是null,則傳回array

remove(int[] array, int index) // 删除指定位置元素,注意傳回新數組,删除元素後面的元素會前移,保持數組有序

removeElement(int[] array, int element) // 删除數組中指定值的元素

reverse(int[] array) // 反轉數組

subarray(int[] array, int startIndexInclusive, int endIndexExclusive) //數組截取

toArray(T... items) // 将不定參數轉換為數組

toMap(Object[] array) // 将二維數組轉換為Map

toObject(int[] array) // 将基本數組類型轉為包裝類型

toString(Object array)// 輸出數組内容

toString(Object array, String stringIfNull)//數組為null時,傳回第二個參數

StringUtils常用方法:

abbreviate(String str, int maxWidth) // 縮進字元串為最大maxWidth長度,第二參數最低為 4,要包含...

compare(String str1, String str2) // 比較兩字元串的大小

compareIgnoreCase(String str1, String str2)

capitalize(String str) // 首字母大寫

uncapitalize(String str) // 首字母小寫

countMatches(CharSequence str, CharSequence sub) // 統計參數2在字元串中出現的次數

contains(CharSequence seq, CharSequence searchSeq) // 判斷某字元串是否包含某子字元串

equals(CharSequence cs1, CharSequence cs2) // 判斷兩字元串相等

equalsIgnoreCase(CharSequence str1, CharSequence str2) // 判斷兩字元串相等,忽略大小寫

isEmpty(CharSequence cs) // 判斷是否為空

isNotEmpty(CharSequence cs) // 判斷是否不為空

isAnyEmpty(CharSequence... css) // 判斷是否含有空字元串

isNoneEmpty(CharSequence... css) // 判斷是否都不是空字元串,與isAnyEmpty(CharSequence... css)相反

isAllEmpty(CharSequence... css) // 判斷是否都是空字元串

isBlank(CharSequence cs) // isEmpty和isBlank的差別在于isEmpty不會忽略空格

isNotBlank(CharSequence cs)

isAllLowerCase(CharSequence cs) // 判斷字元串是否全部大寫或小寫

isAllUpperCase(CharSequence cs)

isAlpha(CharSequence cs) // 判斷字元串是否全部由字母組成

isNumeric(CharSequence cs) // 判斷字元串是否全部由數字組成

isAlphanumeric(CharSequence cs) // 判斷字元串是否全部由字母或數字組成

isAlphaSpace(CharSequence cs) // 判斷字元串是否全部由字母或空格組成

isWhitespace(CharSequence cs) // 判斷字元串是否全部由空格組成

join(Object[] array, String separator) // 将指定數組轉換成字元串,并使用指定分隔符拼接

repeat(String str, int repeat) // 将字元串重複指定次數

repeat(String str, String separator, int repeat) // 在重複字元串時,采用指定字元拼接

trim(String str) // 去除字元串前後的控制符

strip(String str, String stripChars) // 去除指定字元串兩端的指定字元

stripStart(String str, String stripChars) // 去除指定字元串開始位置的指定字元

stripEnd(String str, String stripChars) // 去除指定字元串結尾位置的指定字元

indexOf(CharSequence seq, CharSequence searchSeq) // 查找某個字元在字元串中第一次出現時的索引位置

ordinalIndexOf(CharSequence str, CharSequence searchStr, int ordinal) // 傳回在指定字元串中出現指定字元的位置

left(String str, int len) // 得到一個字元串最左邊的len個字元

right(String str, int len) // 從右邊截取len個字元

mid(String str, int pos, int len) // 得到一個字元串中間的len個字元

substringBetween(String str, String open, String close) // 傳回在字元串中以指定字元開始和指定字元結束的中間字元串

substringsBetween(String str, String open, String close) // 該方法傳回字元串數組

truncate(String str, int maxWidth) // 截斷字元串

truncate(String str, int offset, int maxWidth)

split(String str, String separatorChars) // 将某字元串按字元分割成數組,預設按空格分組

replace(String text, String searchString, String replacement) // 替換某字元串為另一個字元串

startsWith(CharSequence str, CharSequence prefix) // 判斷某字元串是否包含有指定字首的字元串

endsWith(CharSequence str, CharSequence suffix)

ObjectUtils常用方法:

defaultIfNull(Object object, Object defaultValue) // 如果傳遞的對象為null,則傳回預設值。

equals(Object object1, Object object2) // 比較對象的相等性

identityToString(Object object) // 用父類Object的toString()方法傳回對象資訊

toString(Object obj) // 傳回類本身的toString()方法結果,對象為null時,傳回0長度字元串

RandomUtils常用方法:

nextBoolean()

nextDouble()

nextLong()

nextInt(int n)

NumberUtils 常用方法:

createBigDecimal(String str) // 通過字元串建立BigDecimal類型 ,支援int,float,long等數值

isDigits(String str) // 判斷字元串是否為整數

isNumber(String str) // 判斷字元串是否為數字

max(int a, int b, int c) // 擷取參數中最大的值,支援傳入數組

min(int a, int b, int c) // 擷取參數中最小的值,支援傳入數組

toInt(String str) // 将字元串轉換為int類型,支援float,long,short等數值類型

DateUtils常用方法:

isSameDay(Date date1, Date date2) // 判斷兩個日期是否是同一天

parseDate(String str, String... parsePatterns) // 解析日期時間字元串成Date對象

addYears(Date date, int amount) // 對給定的日期進行計算(年月日…)

setYears(Date date, int amount) // 對給定的日期時間設定年份(年月日…)

toCalendar(Date date) // 将日期轉為Calendar執行個體

round(Date date, int field) // 對日期時間進行四舍五入

truncate(Date date, int field) //從給定字段開始格式化截取日期

ceiling(Date date, int field) //從給定字段開始“向上”格式化日期

getFragmentInDays(Date date, int fragment) // 傳回一個指定時間的天數(年月日…)

truncatedEquals(Calendar cal1, Calendar cal2, int field) //比較月曆對應字段是否相等

SystemUtils常用方法:

SystemUtils.FILE_SEPARATOR // 系統檔案分隔符(現使用File.separator替代)

getHostName()// 擷取主機名

getJavaHome()// 擷取JAVA HOME

getJavaIoTmpDir()// 臨時目錄

getUserDir()

getUserHome()// 擷取使用者家目錄