前言
上一节介绍了lang中的元组和变量,这次来看下日期文本以及数字操作这块
commons lang在文本和日期处理方面也提供了相关util用于简化功能
文本
文本的位于lang的text包下,由于commons text的出现,lang里面的text逐渐被弱化了
使用到的类有两个
FormattableUtils
文本格式化相关的操作的封装,基于的是Formattable这个基础类型,这块用的不多。
WordUtils
基于单词的辅助类,既然称为word很显然跟string是有区别,可以看看它包含的部分方法
capitalize
首字母大写,与StringUtils中的不同,这块首字母指的不是字符串的而是其中每个单词,划分单词的依据是根据空格或者可以自定义划分的字符。
WordUtils.capitalize("i am FINE") = "I Am FINE"
initials
获取缩写,取每个单词的首字母组成一个缩写。
WordUtils.initials("Ben John Lee") = "BJL"
数字
再来看下数字方面
数字类型的操作放在了math下面,math应该是数学的意思,但因为commons里有个专门commons math,所以lang里的math包的功能很简陋,基本
都是数字转换类的操作。光列举一个NumberUtils
toInt,toLong,toShort
将字符串转为相应的数字,类型Long.parseLong之类的方法,但是这里可以支持null,还能指定默认值
min,max
最大最下值,可以同时从几个值里获取最大最小的,因为是接口可以支持不定参数,所以很方便
isCreatable
检测字符串是否为一个数字
create*
字符串转换为基本类型,但是要注意,这块虽然可以接受null,但是返回内容不会自动设置默认值
日期
最后看下时间日期这块
用jdk自带的date进行日期时间操作很麻烦,所以一般要使用公共库,这块有不少公共库可用,比如joda time,lang也自带了一些日期时间类的操作
日期时间类都在lang的time包下
DateUtils
日期操作,主要基本都是围绕着java.util.date这个对象的
add*
时间加法,支持年月日小时分钟秒,比直接用Calendar方便多了,一句话就能搞定
isSameDay
判断是否为同一天
parseDate
将字符串解析为日期,可以通过多个日期格式进行解析
set*
修改日期
DateFormatUtils
日期格式化,将Date转换为字符串
StopWatch
一个计时器对象,支持暂停重置等功能,使用很简单
StopWatch sw = StopWatch.createStarted();
sw.suspend();
sw.resume();
Thread.sleep(2000);
System.out.println(sw.getTime(TimeUnit.SECONDS));
好了下节介绍lang最后几个,包括反射啥的