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
commons-lang3相关类实例的更多相关文章
- org.apache.commons.lang3.StringUtils类中isBlank和isEmpty方法的区别
相信很多java程序员在写代码的时候遇到判断某字符串是否为空的时候会用到StringUtils类中isBlank和isEmpty方法,这两个方法到底有什么区别呢?我们用一段代码来阐述这个区别吧: @T ...
- org.apache.commons.lang3.tuple.Pair 作为更新参数,XML 中的 Sql 取不到值、报错
项目用的 Mybatis,今天改一个需求,落地实现是批量更新,且只需要根据主键(id)来更新一个字段(name). 于是,没有犹豫,像下面这样设计了数据结构: 既然是批量更新,那外层肯定是 List ...
- Android随笔之——Android时间、日期相关类和方法
今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...
- Struts2 源码分析——Result类实例
本章简言 上一章笔者讲到关于DefaultActionInvocation类执行action的相关知识.我们清楚的知道在执行action类实例之后会相关处理返回的结果.而这章笔者将对处理结果相关的内容 ...
- 【java】org.apache.commons.lang3功能示例
org.apache.commons.lang3功能示例 package com.simple.test; import java.util.Date; import java.util.Iterat ...
- org.apache.commons.lang3.ArrayUtils 学习笔记
package com.nihaorz.model; /** * @作者 王睿 * @时间 2016-5-17 上午10:05:17 * */ public class Person { privat ...
- List 接口以及实现类和相关类源码分析
List 接口以及实现类和相关类源码分析 List接口分析 接口描述 用户可以对列表进行随机的读取(get),插入(add),删除(remove),修改(set),也可批量增加(addAll),删除( ...
- C#反射实例应用--------获取程序集信息和通过类名创建类实例
AppDomain.CurrentDomain.GetAssemblies();获取程序集,但是获取的只是已经加载的dll,引用的获取不到. System.Reflection.Assembly.Ge ...
随机推荐
- ubuntu 设置apple主题
ubuntu 设置apple主题 参考地址,主要是看这个,很详细 https://linuxhint.com/gnome-tweak-tool-ubuntu-17-10/ 效果图 终端命令 $ sud ...
- pag object设模式
pag object 是自动化测试最佳模式测试之一,它主要体现在对界面交互细节的封装 优点: 减少代码重复,提高测试的可读性,提搞测试用例的可维护性.
- OpenSNS后台文件上传漏铜分析
前言 这几天正在想找个文件上传漏洞分析一波,以加深对文件上传漏洞的理解,正好看到FreeBuf的一片文章记对OpenSNS的一次代码审计,由于其只对漏洞进行复现,故在此进行代码层面的分析. 漏洞分析 ...
- 面试官问我:Object o = new Object() 占用了多少个字节?
小小面试一下 前言蜜语 最近马师傅火的不要不要的,虽然没有抢到耗子尾汁的商标注册权,但是必须得蹭一波马师傅的热度,下面就是闪电五连鞭的教学环节,你准备好了吗! 在正式内容开始前先甩两篇关于类加载机制和 ...
- LINQ to Entities 不识别方法“System.String ToString(“yyyy-MM-dd”)”
将Queryable转化为IEnumerable或者直接Tolist()
- Redis 设计与实现:数据库
本文的分析都是基于 Redis 6.0 版本源码 redis 6.0 源码:https://github.com/redis/redis/tree/6.0 服务器中的数据库 Redis 服务器将绝大部 ...
- 1.mysql表优化和避免索引失效原则
表优化 1.单表优化 建立索引 根据sql的实际解析顺序建立复合索引 最佳左前缀,保持索引的定义和使用顺序一致 2.多表优化 连接查询 小表驱动大表:对于双层循环来说,外层循环(数据量)越小,内层循环 ...
- idea修改项目名导致无法找到主类
描述 本地创建项目copy或者是修改项目名和文件夹名称后 启动springboot项目失败 控制台报错 错误无法找到主类 解决办法 1. 求助互联网得知 需要执行 mvn clean install( ...
- File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?
重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...
- Spring-构造注入&注解注入&代理模式&AOP
1. 课程介绍 1. 依赖注入;(掌握) 2. XML自动注入;(掌握) 3. 全注解配置;(掌握) 4. 代理模式;(掌握) 5. AOP;(掌握) 依赖注入;(掌握) 2.1. 构 ...