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

半夜愛磨刀發表於2020-12-30

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

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()// 獲取使用者家目錄

相關文章