分享几个常用的工具类及其方法

 在java.util包中,Java提供了一些实用的方法和数据结构,本篇文章就介绍了几个比较实用且常用的数据结构和方法。

一.包装类

 在java中,我们一般使用基本类型就可以进行普通的数据操作,那我们为什么还要包装类呢?常见的包装类有:Character,String,Byte,Short,Integer,Long,Float,Double和Boolean,其对应的基本类型为char,String,byte,short,int,long,float,double和boolean。
因为基本类型易于操作,且基本类型不支持泛型,java还提供了自动拆箱和自动装箱功能,所以我们一般用基本类型来实现数据的操作。
接下来我简单介绍一下String类型的构造方法和比较实用的其他方法。
1 构造方法
 1.1 一般推荐使用基本类型构造方法,如:String a = “abc”;有构造方法String a = new String(“abc”).intern;和String a = “abc"是同样的效果。
 1.2 作为引用类型处理时,String a = new String(“abc”);
 1.3 用字符数组构造字符串对象,String a = new String(char[] chars);
2 静态方法
 2.1 将基本数据类型转化为String类型,String val = String.valueOf();
 2.2 拼接字符串,若是少量字符串,有以下2种方法
  String concat = String.format(”%s,%c…",v1,vn);
  MessageFormat.format("{0}…{n}",“abc”,…);
  若是大量字符串,java提供了StringBuilder和StringBuffer两种方法,区别就是StringBuilder是线程不安全的,StringBuffer是线程安全的,对此我们首选StringBuilder,用法如下:

StringBuilder builder = new StringBuilder();
​builder.append(xxx/Xxx obj);  //追加内容
int size = builder.length();  //获取当前builder中实际字符的数量
builder.deleteCharAt(int index); //删除执行下标位置的字符
builder.delete(int beinIndex, int endIndex);//删除从toIndex到endIndex位置的字符。

3 对象方法
 3.1 将字符集转化为字节数组:byte[] bytes = str.getBytes(Charset cs);
 3.2 字符长度:int length = str.length();
 3.3 字符串转化为字符数组:char[] chars = str.toCharArray();
 3.4 内容比较:
  区分大小写:boolean equals = str.equals(String anotherString);
  不区分大小写:boolean equals = str.equalsIgnoreCase(String anotherString);
 3.5 判断字符串内容:
  是否以prefix开始:boolean yes = str.startswith(String prefix);
  是否以suffix结束:boolean yes = str.endswith(String suffix);
  是否包含content:boolean yes = str.contains(String content);
  是否匹配regex正则:boolean yes= str.matches(String regex);
 3.6 截取字符串:
  获取index下标单个字符;char sign = str.CharAt(int index);
  截取从beginIndex到endIndex的字符串:String subStr = str.SubString(int beginIndex,int endIndex);
 3.7 以正则分割字符串:String[] strs = str.split(String regex);
 3.8 从指定位置fromIndex找字符或字符串:
  正向:int index = str.indexOf(char/String,int fromIndex);
  反向:int index = str.lastIndexOf(char/String,int fromIndex);
 3.9 替换字符串内容:
  替换字符:String afterReplace = str.replace(char from,char to);
  以正则替换字符串内容:String afterReplace = str.replaceAll(String regex,String replacement);
 3.10 大小写转换:
  转换为大写:String upper = str.toUpperCase();
  转换为小写:String lower = str.toLowerCase();
 3.11 修剪:删除字符串两端的空格 String trim = str.trim();

二.日期

 日期的本质是以long类型记录从纪元至今的毫秒数,Java中提供了两种方法来实现对日期的操作。
1.日期(Data)类
 1.1 获取日期
  获取系统当前时间:Date date= new Date();
  获取指定时间戳:Dater times = new Date(long timestamp);
  获取日期对应时间戳:long timestamp = date.getTime();
 1.2 比较日期大小
  返回值为1,-1和0,分别表示date大于,小于和等于time:int result = date.compareTo(time);
  date和time是否相等:boolean euqals = date.equals(time);相当于result == 0;
  date是否大于time:boolean after = date.after(time);相当于result == 1;
  date是否小于time:boolean before = date.before(time); 相当于 result == -1;
 1.3 日期的格式化:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
//将date转化为符合sdf格式的字符串
String afterFormat = sdf.format(date);
//将符合sdf格式的字符串转化为日期,若beforeFormat格式不对则会抛出异常
String beforeFormat = "2021-05-07 10:40:21";
Date date1 = sdf.parse(beforeFormat);

2.日历(Calender)类

Calendar c = Calendar.getInstance();
//设置日期时间,可选精确到秒,month是从0开始
c.set(int year,int month,int date,int hourOfDay,int minutes,int seconds);
//根据时间戳设置日期
c.setTimeInMillis(long timestamp);
//根据Date方法设置日期
c.setTime(Date date);

//获取日期的时间戳
long timestamp = c.getTimeInmillis()
//根据Date获取日期
Date date = c.getTime();
//根据field获取日期的部分值,field为固定写法,如Calender.YEAR,Calender.MONTH,Calender.DATE...
int part = c.get(int field);
//根据amount在field的增加或减少日期
c.add(int field,int amount);
三. Arrays类

 1 将array转化为list集合:List list = Arrays.asList(T…t);
 2 在有序array数组中找到元素t:int index = Arrays.binarySearch(T[] array,T t);
 3 将array数组从beginIndex到endIndex排序:Arrays.sort(T[] array,int beginIndex,int endInex);
 4 将数组转化为字符串:Arrays.toString();

四.Math类

 1 只要有小数部分,整数部分就进一:double val = Math.ceil(double decimal);
 2 不论小数部分多大,全都舍弃:double val = Math.floor(double decimal);
 3 去0~1之内的任意小数:double val = Math.random();
 4 取两数之间的较大值:double val = Math.max(doubel a,double b);
 5 取两数之间的较小值:double val = Math.min(double a,doube b);
 6 求a^b:double val = Math.pow(doube a,doube b);
 7 求次方根:double val = Math.squrt(double a);
 8 求绝对值:double num = Math.abs(double a);
 9 求log:double val = Math.log(double a);
 10 求log10:double val = Math.log10(double a);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值