commons-lang3相关类实例
一.ArrayUtils
//1.判断两个数组长度是否相等 ArrayUtils.isSameLength(new int[] {1,2,3,4}, new int[] {1,2,3,4});//true //2.添加一个数据到数组 int[] nums1 = ArrayUtils.add(new int[] {2,3,4,5}, 1); System.out.println("add:"+nums1.length);//5 {2,3,4,5,1} //3.合并两个数组 int[] nums2 = ArrayUtils.addAll(new int[] {1,2,3,4}, new int[] {3,4,5,6}); System.out.println("addAll:"+nums2.length);//8 //4.拷贝数组 int[] num3 = ArrayUtils.clone(nums2); //5.查询某个Object是否在数组中 boolean contains = ArrayUtils.contains(new int[]{1,2,3}, 1);//true //6.查询某个Object在数组中的位置,可以指定起始搜索位置,找不到返回-1 int index1 = ArrayUtils.indexOf(new int[] { 1, 3, 6 }, 6);// 2 int index2 = ArrayUtils.indexOf(new int[] { 1, 3, 6 }, 2);// -1 //7.判断数组是否为空(null和length=0的时候都为空) boolean isEmpty = ArrayUtils.isEmpty(new int[] { 1, 3, 6 });//false // 8.1 两个数组完全相同 ArrayUtils.isEquals(new int[] { 1, 2, 3 }, new int[] { 1, 2, 3 });// true // 8.2 数据类型以及长度相同,但各个Index上的数据不是一一对应 ArrayUtils.isEquals(new int[] { 1, 3, 2 }, new int[] { 1, 2, 3 });// true // 8.3 数组的长度不一致 ArrayUtils.isEquals(new int[] { 1, 2, 3, 3 }, new int[] { 1, 2, 3 });// false // 8.4 不同的数据类型 ArrayUtils.isEquals(new int[] { 1, 2, 3 }, new long[] { 1, 2, 3 });// false ArrayUtils.isEquals(new Object[] { 1, 2, 3 }, new Object[] { 1, (long) 2, 3 });// false // 8.5 Null处理,如果输入的两个数组都为null时候则返回true ArrayUtils.isEquals(new int[] { 1, 2, 3 }, null);// false ArrayUtils.isEquals(null, null);// true //从逆序开始搜索,搜到就返回当前的index否则返回-1 ArrayUtils.lastIndexOf(new int[] { 1, 3, 6 }, 6);// 2 //删除数组中某个位置上的数据 ArrayUtils.remove(new int[] { 1, 3, 5 }, 1);// {1,5} //删除数组中某个对象(从正序开始搜索,删除第一个) ArrayUtils.removeElement(new int[] { 1, 3, 5 }, 3);// {1,5} // 5.截取数组 ArrayUtils.subarray(new int[] { 3, 4, 1, 5, 6 }, 2, 4);// {1,5} // 12.基本数据类型数组与外包型数据类型数组互转 ArrayUtils.toObject(new int[] { 1, 2 });// new Integer[]{Integer,Integer} ArrayUtils.toPrimitive(new Integer[] { new Integer(1), new Integer(2) });// new int[]{1,2} //将一个数组转换成String,用于打印数组 ArrayUtils.toString(new int[] { 1, 4, 2, 3 });// {1,4,2,3}
二.Validate
//判断结果是否为true,否则将抛出IllegalArgumentException异常 try { Validate.isTrue(false); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } //判断一个值是否包含在指定的范围之内,否则会抛出IllegalArgumentException异常 try { Validate.exclusiveBetween(1, 3, 4); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } //判断一个类与另一个类的实例对象是否同一个类或接口的子类,或者类的信息相同,否则抛出IllagelArgumentException. try { Validate.isAssignableFrom(Map.class, List.class); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); }
三.ClassUtis
//获取类的简称 ClassUtils.getShortClassName(HashMap.class);//HashMap ClassUtils.getSimpleName(HashMap.class);//HashMap //获取所在包名称 ClassUtils.getPackageName(HashMap.class);//java.util //获取所有父亲类集合 java.util.AbstractMap ,java.lang.Object List<Class<?>> list = ClassUtils.getAllSuperclasses(HashMap.class); //获取所有接口 java.util.Map ,java.lang.Cloneable ,java.io.Serializable ClassUtils.getAllInterfaces(HashMap.class); //类集合到字符串集合转换 java.util.AbstractMap ,java.lang.Object List<String> StringType = ClassUtils.convertClassesToClassNames(list); //字符串集合到类集合转换 java.util.AbstractMap ,java.lang.Object List<Class<?>> list2 = ClassUtils.convertClassNamesToClasses(StringType); try { Method m = ClassUtils.getPublicMethod(String.class, "getBytes", String.class); //public byte[] java.lang.String.getBytes(java.lang.String) throws java.io.UnsupportedEncodingException System.out.println(m.toString()); } catch (Exception e) { e.printStackTrace(); }
四.StringUtils
//1. 检查字符串是否为空: //static boolean isBlank(CharSequence str) 判断字符串是否为空或null; //static boolean isNotBlank(CharSequence str) 判断字符串是否非空或非null; StringUtils.isBlank("a b"); //false //2. 缩进字符串: //static String abbreviate(String str, int maxWidth) 缩进字符串,第二个参数至少为4(包括...) StringUtils.abbreviate("abcdefg", 20); //abcdefg (正常显示) StringUtils.abbreviate("abcdefg", 4); //a... //3. 首字母大写: //static String capitalize(String str) 首字母大写 //static String uncapitalize(String str)首字母小写 StringUtils.capitalize("abcdefg"); //Abcdefg //4. 字符串显示在一个大字符串的位置: //static String center(String str, int size); 默认以空格填充 //static String center(String str, int size, String padString); 其余位置字符串填充 //public static String leftPad(String str,int size); 左侧空格填充 //public static String leftPad(String str,int size,String padStr);左侧字符串填充 //public static String rightPad(String str,int size); 左侧空格填充 //public static String rightPad(String str,int size,String padStr);左侧字符串填充 StringUtils.center("abcdefg", 20);// abcdefg StringUtils.center("abcdefg", 20,"*_"); //*_*_*_abcdefg*_*_*_* StringUtils.leftPad("abc", 10, "*"); //*******abc StringUtils.rightPad("abc", 10, "*");//abc******* //5. 重复字符串次数 //static String repeat(String str, int repeat); StringUtils.repeat("abc", 5); //abcabcabcabcabc //6. 是否全是大写,是否全是小写(3.0版本) //public static boolean isAllLowerCase(String str); //public static boolean isAllUpperCase(String str); StringUtils.isAllLowerCase("abC"); //false //7. 是否都是由字母组成: //public static boolean isAlpha(String str); 只由字母组成 //public static boolean isAlphaSpace(String str); 只有字母和空格组成 //public static boolean isAlphanumeric(String str);只由字母和数字组成 //public static boolean isAlphanumericSpace(String str);只由字母数字和空格组成 //public static boolean isNumeric(String str);只由数字组成 //public static boolean isNumericSpace(String str);只由数字和空格组成 StringUtils.isAlpha("a2bdefg"); //false //8. 小字符串在大字符串中的匹配次数 //public static int countMatches(String str,String sub); StringUtils.countMatches("ababsssababa", "ab"); //4 //9. 字符串倒转 //public static String reverse(String str); StringUtils.reverse("abcdef"); //fedcba //10. 大小写转换,空格不动 //public static String swapCase(String str); StringUtils.swapCase("I am a-A*a"); //i AM A-a*A
五.RandomStringUtils
//public static String randomAscii(final int count)
String s1 = RandomStringUtils.randomAscii(4);//g!<D
//public static String randomNumeric(final int count)
String s2 = RandomStringUtils.randomNumeric(4);//2558
//public static String random(final int count, final String chars)
String s3 = RandomStringUtils.random(4, "abcdefg");//debe
//public static String random(final int count, final boolean letters, final boolean numbers)
String s4 = RandomStringUtils.random(4, false, true);//4105