目录
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()// 获取用户家目录