java 常用工具类,
分享于 点击 24331 次 点评:252
java 常用工具类,
Apache Commons包估计是Java中使用最广发的工具包了,很多框架都依赖于这组工具包中的一部分,它提供了我们常用的一些编程需要,但是JDK没能提供的机能,最大化的减少重复代码的编写。
org.apache.commons.lang3 为加强版的 org.apache.commons.lang 功能更加丰富
一. org.apache.commons.lang3.StringUtils
isBlank 字符串是否为空 (trim后判断)
isEmpty 字符串是否为空 (不trim并判断)
equals 字符串是否相等
join 合并数组集合为单一字符串,可传分隔符 StringUtils.join(array, ","); StringUtils.join(collection, ",");
split(String str) 分割字符串成数组
EMPTY 返回空字符串
trimToNull 去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null 或"",则返回 null
replace 替换字符串
capitalize (String str) 首字符小写
lastIndexOf(String str, char searchChar)
二. org.apache.commons.lang3.ArrayUtils
isEmpty 是否空数组
contains 是否包含某字符串
addAll 合并两个数组
remove 删除数组某个位置的元素
Object[] clone(Object[] array) 克隆一个数组
isSameLength(strs, strs2)判断两个数组长度是否相等,两数组类型必须相同
add 向数组添加元素
subarray 截取数组
lastIndexOf(Object[] array, Object objectToFind) 查找元素最后一次存在位置
reverse 反转数组
isEquals 比较数组是否相等
toObject 基础类型数据数组转换为对应的Object数组
三.Arrays jdk1.7以上自带
//(不允许操作 否则报错java.lang.UnsupportedOperationException) 可以new Arraylist(转换后的数据)
List<T> asList(T... a) 返回一个受指定数组支持的固定大小的列表
binarySearch(object[ ], object key) 二分查找
<T> void sort(T[] a, Comparator<? super T> c) 数组排序
String toString(Object[] a) 方便打印出一维数组内容 (StringUtils.join方法可转成字符串)
deepToString 方便打印出二维数组内容
equals方法 比较1维数组是否相等
deepEquals方法 可去判断更加复杂的数组是否相等
fill(obj[] a, obj val) 填充数组元素
四. org.apache.commons.collections.CollectionUtils
isEmpty 集合是否为空
select 根据条件筛选集合元素
transform 根据指定方法处理集合元素,类似List的map()。
filter 过滤元素,雷瑟List的filter()
find 基本和select一样
collect 和transform 差不多一样,但是返回新数组
forAllDo 调用每个元素的指定方法。
isEqualCollection 判断两个集合是否一致
CollectionUtils.union( Collection a, Collection b ) 求两集合并集
CollectionUtils.intersection(Collection a, Collection b) 求两集合交集
CollectionUtils.subtract(Collection a, Collection b ) 求两集合差集
CollectionUtils.containsAny(aList, bList); 是否存在交集
unmodifiableCollection 可以得到一个集合的镜像,它的返回结果是不可直接被改变,否则会提示错误
五.Collections jdk1.7以上自带
reverse(List<?> list):反转指定List集合中元素的顺序
sort(List list, Comparator c):自定义比较器进行排序
binarySearch(List list, Object key):使用二分搜索法
fill(List list, Object obj):使用指定对象填充
replaceAll(List list, Object old, Object new):替换
<T> Set<T> synchronizedSet(Set<T> s)返回指定 set 支持的同步(线程安全的)set
<T> SortedSet<T> synchronizedSortedSet(SortedSet<T> s)返回指定有序 set 支持的同步(线程安全的)有序 set
<T> List<T> synchronizedList(List<T> list) 返回指定列表支持的同步(线程安全的)列表
<K,V> Map<K,V> synchronizedMap(Map<K,V> m)返回由指定映射支持的同步(线程安全的)映射
<K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> m)返回指定有序映射支持的同步(线程安全的)有序映射
//(集合的长度必须一致) ArrayList<String> arrayList = new ArrayList<>(Arrays.asList( new String[目标集合.size()] ));
copy(List<? super Object> dest, List<? extends Object> src) 复制集合
unmodifiableCollection( Collection c ) 可以得到一个集合的镜像,它的返回结果是不可直接被改变,否则会提示错误
六.org.apache.commons.beanutils.BeanUtils(不推荐使用性能较差,推荐spring Beanutils或cglib Beancopier)
copyPeoperties(Object dest, Object orig) 复制属性值,从一个对象到另一个对象
getProperty/getSimpleProperty(Object bean, String name) 获取对象属性值
setProperty(Object bean, String name, Object value) 设置对象属性值
populate(Object bean,Map<String,? extends Object> properties) 根据Map给属性复制
copyProperty(Object bean, String name, Object value) 复制单个值,从一个对象到另一个对象。
cloneBean(Object bean) 克隆
七.org.apache.commons.beanutils.PropertyUtils
getProperty 获取对象属性值
setProperty 设置对象属性值
getPropertyDiscriptor 获取属性描述器
isReadable 检查属性是否可访问
copyProperties 复制属性值,从一个对象到另一个对象
getPropertyDiscriptors 获取所有属性描述器
isWriteable 检查属性是否可写
getPropertyType 获取对象属性类型
copyProperties(Object dest, Object orig); 复制属性
八.org.apache.commons.lang.time.DateUtils(常用的一些函数)
Date addDays(Date date,int amount) 一个日期对象+n天 返回一个新对象
Date addHours(Date date,int amount)//一个日期对象+n小时 返回一个新对象
Date addMilliseconds(Date date,int amount) //一个日期对象+n毫秒 返回一个新对象
Date addMinutes(Date date,int amount)//一个日期对象+n分 返回一个新对象
Date addMonths(Date date,int amount) //一个日期对象+n月 返回一个新对象
Date addSeconds(Date date,int amount) //一个日期对象+n秒 返回一个新对象
Date addWeeks(Date date,int amount) //一个日期对象+N个星期
Date addYears(Date date,int amount) //一个日期对象+N年
boolean isSameDay(Date date1,Date date2) //两个日期对象是否相等(只比较年-月-日)
boolean isSameInstant(Date date1,Date date2) //比较两个日期是否完全相等(精确到毫秒)
Date parseDate(String str,String[] parsePatterns) Parses a string representing a date by trying a variety of different parsers
九.org.apache.commons.lang3.ObjectUtils(是java.util.Objects的升级版 推荐使用)
boolean equals(Object object1, Object object2) //已作废 不推荐使用 不同类型之间的比较 一般都为false
String toString(Object obj)
十org.apache.commons.lang3.BooleanUtils 操作基础布尔或者布尔对象
http://blog.csdn.net/huangwenyi1010/article/details/52263957 参照
boolean isTrue(Boolean bool)
boolean isNotTrue(Boolean bool)
boolean isFalse(Boolean bool)
boolean isNotFalse(Boolean bool)
基本数据类型与封装类型转换
boolean toBoolean(Boolean bool)//封装类型转换为基础类型
toBooleanDefaultIfNull(Boolean bool,boolean valueIfNull)
toBoolean(int value) //0为false ,非0为true null为null
toBooleanObject(int value)
Boolean toBooleanObject(Integer value)
toBoolean(int value,int trueValue,int falseValue)
toBooleanObject(int value,int trueValue,int falseValue,int nullValue)
int compare(boolean x,boolean y) 相等 返回0 不能返回1
转换为整形
int toInteger(boolean bool)//false是0,true是1
Integer toIntegerObject(boolean bool)
int toInteger(boolean bool,int trueValue,int falseValue)等等
int toInteger(Boolean bool,int trueValue,int falseValue,int nullValue)等等
转化为字符串
String toStringTrueFalse(boolean bool)
String toStringYesNo(boolean bool)
String toStringOnOff(boolean bool)
String toString(Boolean bool,String trueString,String falseString,String nullString)
十一.org.apache.commons.lang3.ClassUtils
getShortClassName(Class cls)取得一个类的类名
ClassUtils.getPackageName(Class cls) 获取一个类的包名
十二. org.apache.commons.io.FileUtils
deleteDirectory 删除文件夹
readFileToString 以字符形式读取文件内容。
deleteQueitly 删除文件或文件夹且不会抛出异常。
copyFile 复制文件
writeStringToFile 把字符写到目标文件,如果文件不存在,则创建。
forceMkdir 强制创建文件夹,如果该文件夹父级目录不存在,则创建父级。
write 把字符写到指定文件中
listFiles 列举某个目录下的文件(根据过滤器)
copyDirectory 复制文件夹
forceDelete 强制删除文件
十三. org.apache.commons.io.IOUtils
closeQuietly 关闭一个IO流、socket、或者selector且不抛出异常。通常放在finally块。
toString 转换IO流、 Uri、 byte[]为String。
copy IO流数据复制,从输入流写到输出流中,最大支持2GB。
toByteArray 从输入流、URI获取byte[]。
write 把字节. 字符等写入输出流。
toInputStream 把字符转换为输入流。
readLines 从输入流中读取多行数据,返回List<String>
copyLarge 同copy,支持2GB以上数据的复制。
lineIterator 从输入流返回一个迭代器,
根据参数要求读取的数据量,全部读取,如果数据不够,则失败。
十四. org.apache.commons.codec.digest.DigestUtils
md5Hex MD5加密,返回32位
sha1Hex SHA-1加密
sha256Hex SHA-256加密
sha512Hex SHA-512加密
md5 MD5加密,返回16位
十五. org.springframework.util.DigestUtils spring框架自带的md5加密工具类
MD5 不能解密, MD5的破解方式就是 把不同的字符串按MD5加密 然后对比加密后的结果是不是一样. 在线MD5解密 也是这样的原理.
在线破译网站地址: https://www.cmd5.com
加密的长度是固定的32位举例:
private String getMD5(long seckillId) {
String base = seckillId + "/" + salt; //salt md5盐值字符串 用于混淆md5
String md5 = DigestUtils.md5DigestAsHex(base.getBytes());
return md5;
}
注意: String.concat(String str) 当str==null 会导致空指针
相关文章
- 暂无相关文章
用户点评