common-lang3.4 简摘

ArraysUtils:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//这个类的很多方法都有做数组为空的判断
//数组转字符串,便于打印日志
public static String toString(Object array);
//数组转Map,Entry数组或者n行2列的数组才行
public static Map<Object, Object> toMap(Object[] array);
//如果数组为null,返回一个空数组,否则返回本身
public static ..[] nullToEmpty(..[] array);
//取数组的一个前闭后开的区间
public static ..[] subarray(..[] array, int startIndexInclusive, int endIndexExclusive);
//数组是否等长,一个为null,一个为空也算等长
public static boolean isSameLength(..[] array1, ..[] array2);
//包装类型和原始类型互换
public static int[] toPrimitive(Integer[] array);
public static int[] toPrimitive(Integer[] array, int valueForNull);
//原始类型和包装类型互换
public static Integer[] toObject(in[] array);
//返回array1和array2合并后的结果,并不改变原始数组
public static T[] addAll(T[] array1, T.. array2);
  • array强转成object,然后通过getClass().getComponentType()可以获取到数组的实际类型,可以由此做些统一的逻辑处理

StringUtils:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//这个类的很多方法都有做字符串为空的判断
//字符串是否为空
public static boolean isEmpty(CharSequence cs);
//字符串是否非空
public static boolean isNotEmpty(CharSequence cs);
//去前后空格,null安全
public static String trim(String str);
//如果是null或者空串都返回null,否则原样返回
public static String trimToNull(String str);
//如果是null或者空串都返回空串,否则原样返回
public static String trimToEmpty(String str);
//从str的开头和结尾中删除stripChars中出现的字符
public static String strip(String str, String stripChars);
//字符串判等,cs1、cs2可为null
public static boolean equals(CharSequence cs1, CharSequence cs2);
//待查找目标在原始字符串中出现的位置,处理了null串的问题
public static int indexOf(…);
//同上,反向查找
public static int lastIndexOf(…);
//待查串在目标串中出现第ordinal次的位置
public static int ordincalIndexOf(CharSequence str, CharSequence searchStr, int ordinal);
//同上,反向查找
public static int lastOrdinalIndexOf(…);
//子串截取
public static String substring(String str, int star);
//截取左边
public static String left(String str, int len);
//截取右边
public static String right(String str, int len);
//从pos开始截取len长度
public static String mid(String str, int pos, int len);
//截取第一次出现separator之前的字符串
public static String substringBefore(String str, String separator);
//截取第一次出现separator之后的字符串
public static String substringAfter(String str, String separator);
//截取最后一次出现separator之前的字符串
public static String substringBeforeLast(String str, String separator);
//截取最后一次出现separator之后的字符串
public static String substringAfterLast(String str, String separator);
//截取第一次和第二次出现tag之间的字符串
public static String substringBetween(String str, String tag);
//截取所有open和close串之间的字符串
public static String[] substringBetween(String str, String open, String close);
//分割字符串
public static String[] split(String str, String separatorChars);
//连接字符串
public static <T> String join(T… elements);
//使用separator连接字符串
public static String join(Object[] array, char separator);
//删除以特定字符串开头的字符串头,如果没有就不删除
public static String removeStart(String str, String remove);
//删除以特定字符串结束的字符串接诶,如果没有就不删除
public static String removeEnd(String str, String remove);
//如果短于size,则用padChar在左侧自动补齐,如果是null,还是返回null
public static String leftPad(String str, int size, char padChar);
//同上,右侧自动补齐
public static String rightPad(String str, int size, char padChar);
//短于size,则在两侧用空格自动补齐
public static String center(String str, int size);
//使首字母大写
public static String capitalize(String str);
//使字母反向大小写
public static String swapCase(String str);
//字符串翻转
public static String reverse(String str);
//以separator进行翻转
public static String reverseDelimited(String str, char separatorChar);
//超过maxWidth时,maxWidth长度的最后三位用…表示,如果maxWidth小于4,会报错(null和空串原样返回)
public static String abbreviate(String str, int maxWidth);
//查找两个字符串的第一个不同之处的位置
public static int indexOfDifference(CharSequence cs1, CharSequence cs2);
//获取两个串的相同前缀
public static String getCommonPrefix(String.. strs);
//求两个串的编辑距离
public static int getLevenshteinDistance(CharSequence s, CharSequence t);
//用wrapWith字符将str包裹起来(null和空串原样返回)
public static String wrap(String str, char wrapWith);

RandomStringUtils:

生成随机的字符串

RandomUtils:

生成某一范围内的随机数

Pair:

二元组

Triple:

三元组 //如果要return两个或者三个数据,可以用这两个类封一下,而不需要额外定义类

DateUtils:

1
2
3
4
5
6
7
8
9
10
11
12
13
//增加年份,还有Months、Days等
public static Date addYears(Date date, int amount);
//设置年份,还有Months、Days等
public static Date setYears(Date date, int amount);
//Date转Calendar
public static Calendar toCalendar(Date date);
//根据field截取时间,field可以是年(Calendar.YEAR)月日时分秒
public static Date truncate(final Date date, final int field);
//根据field四舍五入时间
public static Date round(final Date date, final int field);
//根据field上取整时间
public static Date ceiling(final Date date, final int field);

StopWatch:

用于计时的一个工具类

ExceptionUtil:

1
2
3
4
5
6
7
8
//从Throwable中获取错误堆栈字符串
public static String getStackTrace(Throwable throwable);
//获取错误堆栈数组
public static Throwable[] getThrowables(Throwable throwable);
//获取错误堆栈列表
public static List<Throwable> getThrowableList(Throwable throwable);
//获取根错误
public static Throwable getRootCause(Throwable throwable);

ClassUtils:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//根据实例获取短类名
public static String getShortClassName(Object object, String valueIfNull);
//根据类获取短类名
public static String getShortClassName(Class<?> cls);
//获取简单类名
public static String getSimpleName(Class<?> cls);
//获取包名
public static String getPackageName(Class<?> cls);
//获取所有的父类
public static List<Class<?>> getAllSuperclasses(Class<?> cls);
//获取所有的接口
public static List<Class<?>> getAllInterfaces(Class<?> cls);
//判断是否可以转型
public static isAssignable(Class<?>[] classArray, Class… toClassArray);

org.apache.commons.lang3.reflect下的一些包:

1
2
3
4
5
6
7
8
9
//使用这些工具类,会使反射操作比较方便
ConstructorUtils
FiledUtils
InheritanceUtils
MemberUtils
MethodUtils
Typed
TypeLiteral
TypeUtils

热评文章