关于Apache Commons-Lang的总结
部分转载至:http://linhongyu.blog.51cto.com/6373370/1553329
一、前言
Java码农不识Apache,敲尽一生也枉然。旗下的开源项目众多,各个都是吊炸天。今日且说Commons,轻轻点击此链接进入Apache Commons主页,Logging、Pool、Net、ONGL、EL、IO、DBCP、Email、Collection、Lang……等等项目中常用到的包。而这篇文章的主角Lang则是我们最常用的工具作为jdk的补充,怎能不去详细探究一番!
二、字符串的处理类(StringUtils)
org.apache.commons.lang3.StringUtils 继承Object,Operations on String
that are nul
l
safe。所谓的null safe就是对String进行操作不会出现NullPointerException异常,很实用有没有!以后再也不怕到处出现空指针异常了。先看看官方文档中这个类都有些什么方法:
这些方法基本上看方法名,就能猜出它大概的作用了。
- //缩短到某长度,用...结尾.其实就是(substring(str, 0, max-3) + "...")
- //public static String abbreviate(String str,int maxWidth)
- StringUtils.abbreviate("abcdefg", 6);// ---"abc..."
- //字符串结尾的后缀是否与你要结尾的后缀匹配,若不匹配则添加后缀
- StringUtils.appendIfMissing("abc","xyz");//---"abcxyz"
- StringUtils.appendIfMissingIgnoreCase("abcXYZ","xyz");//---"abcXYZ"
- //首字母大小写转换
- StringUtils.capitalize("cat");//---"Cat"
- StringUtils.uncapitalize("Cat");//---"cat"
- //字符串扩充至指定大小且居中(若扩充大小少于原字符大小则返回原字符,若扩充大小为 负数则为0计算 )
- StringUtils.center("abcd", 2);//--- "abcd"
- StringUtils.center("ab", -1);//--- "ab"
- StringUtils.center("ab", 4);//---" ab "
- StringUtils.center("a", 4, "yz");//---"yayz"
- StringUtils.center("abc", 7, "");//---" abc "
- //去除字符串中的"\n", "\r", or "\r\n"
- StringUtils.chomp("abc\r\n");//---"abc"
- //判断一字符串是否包含另一字符串
- StringUtils.contains("abc", "z");//---false
- StringUtils.containsIgnoreCase("abc", "A");//---true
- //统计一字符串在另一字符串中出现次数
- StringUtils.countMatches("abba", "a");//---2
- //删除字符串中的梭有空格
- StringUtils.deleteWhitespace(" ab c ");//---"abc"
- //比较两字符串,返回不同之处。确切的说是返回第二个参数中与第一个参数所不同的字符串
- StringUtils.difference("abcde", "abxyz");//---"xyz"
- //检查字符串结尾后缀是否匹配
- StringUtils.endsWith("abcdef", "def");//---true
- StringUtils.endsWithIgnoreCase("ABCDEF", "def");//---true
- StringUtils.endsWithAny("abcxyz", new String[] {null, "xyz", "abc"});//---true
- //检查起始字符串是否匹配
- StringUtils.startsWith("abcdef", "abc");//---true
- StringUtils.startsWithIgnoreCase("ABCDEF", "abc");//---true
- StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"});//---true
- //判断两字符串是否相同
- StringUtils.equals("abc", "abc");//---true
- StringUtils.equalsIgnoreCase("abc", "ABC");//---true
- //比较字符串数组内的所有元素的字符序列,起始一致则返回一致的字符串,若无则返回""
- StringUtils.getCommonPrefix(new String[] {"abcde", "abxyz"});//---"ab"
- //正向查找字符在字符串中第一次出现的位置
- StringUtils.indexOf("aabaabaa", "b");//---2
- StringUtils.indexOf("aabaabaa", "b", 3);//---5(从角标3后查找)
- StringUtils.ordinalIndexOf("aabaabaa", "a", 3);//---1(查找第n次出现的位置)
- //反向查找字符串第一次出现的位置
- StringUtils.lastIndexOf("aabaabaa", 'b');//---5
- StringUtils.lastIndexOf("aabaabaa", 'b', 4);//---2
- StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2);//---1
- //判断字符串大写、小写
- StringUtils.isAllUpperCase("ABC");//---true
- StringUtils.isAllLowerCase("abC");//---false
- //判断是否为空(注:isBlank与isEmpty 区别)
- StringUtils.isBlank(null);StringUtils.isBlank("");StringUtils.isBlank(" ");//---true
- StringUtils.isNoneBlank(" ", "bar");//---false
- StringUtils.isEmpty(null);StringUtils.isEmpty("");//---true
- StringUtils.isEmpty(" ");//---false
- StringUtils.isNoneEmpty(" ", "bar");//---true
- //判断字符串数字
- StringUtils.isNumeric("123");//---false
- StringUtils.isNumeric("12 3");//---false (不识别运算符号、小数点、空格……)
- StringUtils.isNumericSpace("12 3");//---true
- //数组中加入分隔符号
- //StringUtils.join([1, 2, 3], ';');//---"1;2;3"
- //大小写转换
- StringUtils.upperCase("aBc");//---"ABC"
- StringUtils.lowerCase("aBc");//---"abc"
- StringUtils.swapCase("The dog has a BONE");//---"tHE DOG HAS A bone"
- //替换字符串内容……(replacePattern、replceOnce)
- StringUtils.replace("aba", "a", "z");//---"zbz"
- StringUtils.overlay("abcdef", "zz", 2, 4);//---"abzzef"(指定区域)
- StringUtils.replaceEach("abcde", new String[]{"ab", "d"},
- new String[]{"w", "t"});//---"wcte"(多组指定替换ab->w,d->t)
- //重复字符
- StringUtils.repeat('e', 3);//---"eee"
- //反转字符串
- StringUtils.reverse("bat");//---"tab"
- //删除某字符
- StringUtils.remove("queued", 'u');//---"qeed"
- //分割字符串
- StringUtils.split("a..b.c", '.');//---["a", "b", "c"]
- StringUtils.split("ab:cd:ef", ":", 2);//---["ab", "cd:ef"]
- StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2);//---["ab", "cd-!-ef"]
- StringUtils.splitByWholeSeparatorPreserveAllTokens("ab::cd:ef", ":");//-["ab"," ","cd","ef"]
- //去除首尾空格,类似trim……(stripStart、stripEnd、stripAll、stripAccents)
- StringUtils.strip(" ab c ");//---"ab c"
- StringUtils.stripToNull(null);//---null
- StringUtils.stripToEmpty(null);//---""
- //截取字符串
- StringUtils.substring("abcd", 2);//---"cd"
- StringUtils.substring("abcdef", 2, 4);//---"cd"
- //left、right从左(右)开始截取n位字符
- StringUtils.left("abc", 2);//---"ab"
- StringUtils.right("abc", 2);//---"bc"
- //从第n位开始截取m位字符 n m
- StringUtils.mid("abcdefg", 2, 4);//---"cdef"
- StringUtils.substringBefore("abcba", "b");//---"a"
- StringUtils.substringBeforeLast("abcba", "b");//---"abc"
- StringUtils.substringAfter("abcba", "b");//---"cba"
- StringUtils.substringAfterLast("abcba", "b");//---"a"
- StringUtils.substringBetween("tagabctag", "tag");//---"abc"
- StringUtils.substringBetween("yabczyabcz", "y", "z");//---"abc"
三、其它类简介
RandomStringUtils:
- //随机生成n位数数字
- RandomStringUtils.randomNumeric(n);
- //在指定字符串中生成长度为n的随机字符串
- RandomStringUtils.random(n, "abcdefghijk");
- //指定从字符或数字中生成随机字符串
- System.out.println(RandomStringUtils.random(n, true, false));
- System.out.println(RandomStringUtils.random(n, false, true));
NumberUtils:
- //从数组中选出最大值
- NumberUtils.max(new int[] { 1, 2, 3, 4 });//---4
- //判断字符串是否全是整数
- NumberUtils.isDigits("153.4");//--false
- //判断字符串是否是有效数字
- NumberUtils.isNumber("0321.1");//---false
ArrayUtils:
- //创建数组
- String[] array = ArrayUtils.toArray("1", "2");
- //判断两个数据是否相等,如果内容相同, 顺序相同 则返回 true
- ArrayUtils.isEquals(arr1,arr2);
- //判断数组中是否包含某一对象
- ArrayUtils.contains(arr, "33");
- //二维数组转换成MAP
- Map map = ArrayUtils.toMap(new String[][] {
- { "RED", "#FF0000" }, { "GREEN", "#00FF00" }, { "BLUE", "#0000FF" } });
DateUtils:
- //日期加n天
- DateUtils.addDays(new Date(), n);
- //判断是否同一天
- DateUtils.isSameDay(date1, date2);
- //字符串时间转换为Date
- DateUtils.parseDate(str, parsePatterns);
四、结语
本文只是简单的介绍了commons-lang中的一些常用工具类,还有许多挺实用的就不一一列举。还是要自己去查阅文档试用了才能体会到它的简便。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
http://janwer.iteye.com/blog/148313
关于Apache Commons-Lang的总结的更多相关文章
- 让时间处理简单化 【第三方扩展类库org.apache.commons.lang.time】
JAVA的时间日期处理一直是一个比较复杂的问题,大多数程序员都不能很轻松的来处理这些问题.首先Java中关于时间的类,从 JDK 1.1 开始,Date的作用很有限,相应的功能已由Calendar与D ...
- 关于出现 org.apache.commons.lang.exception.NestableRuntimeException的解决方法
最近做服务端和客户端之间的访问,出现了 org.apache.commons.lang.exception.NestableRuntimeException等状况.实在令人头大,翻到了一个很好的帖子说 ...
- org.apache.commons.lang.StringUtils中常用的方法
org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...
- java转换json需要导入的jar包,org/apache/commons/lang/exception/NestableRuntimeException
缺少相应jar包都会有异常,根据异常找jar包导入...... 这里我说下lang包,因为这个包我找了好半天: 我用的是: commons-lang3-3.1.jar 出现异常: jav ...
- org.apache.commons.lang.StringUtils类
org.apache.commons.lang.StringUtils类 本文摘自:(http://www.blogjava.net/japper/archive/2012/05/23/378946. ...
- java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntim [问题点数:40分,结帖人wangxiaohua_001]
14:56:10.093 WARN!! Error for /butterfly/plugins/zhonghang/UsefulData/save_usefuldata.bshjava.lang.N ...
- java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils Caused by: java.lang.ClassNotFou ...
- ssh整合启动tomcat报java.lang.ClassNotFoundException: org.apache.commons.lang.xwork.StringUtils
今天搭建了一个ssh项目环境,整合后,访问项目首页,登录不进去,控制台报错,后来调试代码后,在获取数据库数据后,返回到action时,又进入了action导致死循环,其实这里是两个问题,控制台报错如下 ...
- 转 java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
转自:http://blog.csdn.net/zb0567/article/details/7893063 java.lang.ClassNotFoundException: org.apache. ...
- org.apache.commons.lang下的工具类
1.org.apache.commons.lang.ArrayUtils 例子 package chongqingyusp; import java.util.Map; import org.apac ...
随机推荐
- STM32 串口DMA方式接收(转)
STM32 是一款基于ARM Cortex-M3内核的32位MCU,主频最高可达72M.最近因为要在车机上集成TPMS功能, 便开始着手STM32的开发工作,STM32F10x系列共有5个串口(USA ...
- python中__dict__和dir()
转自:http://www.cnblogs.com/ifantastic/p/3768415.html 首先需要知道的是,dir() 是 Python 提供的一个 API 函数,dir() 函数会自动 ...
- 字符串旋转(str.find()---KMP)
此题旋转带有技巧性,问题转化为常见的问题,熟练STL可以直接用str.find()函数,其是主要想用KMP算法实现字符串的查找算法... //如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的 ...
- 编写安全代码:小心volatile的原子性误解
本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载.但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途. ============ ...
- 【Zookeeper学习】Apache Zookeeper项目简介
正在撰写,稍后来访……
- ant -verbose -debug ...
ant -verbose -debug (target) 可以让ant打印出所执行的command任务
- python 输出字符串如果遇到字典
>>> d = {'a':1} >>> print '%s' % 1,d 1 {'a': 1} >>> print '%s %s' % 1,d T ...
- stm32 cortext-M3 类型对齐问题【worldsing笔记】
经过细测,Cortex-M3的double类型必须4字节对齐访问,其他诸如float,int,short 可以非对齐访问.否则将会产生硬件异常!即访问double类型地址必须能被4整除,测试代码如下: ...
- SHH入门:Spring框架简介
(1)Spring 七大模块 核心容器:核心容器提供Spring 框架的基本功能.核心容器的主要组件是 BeanFactory,它是工厂模式的实现.BeanFactory 使用控制反转 (IOC) 模 ...
- Winform- DotNetBar for Windows Forms的安装的添加
Winform界面不好看,偶尔在网上看到winform的界面美化,对比了一下选择了DotNetBar for Windows Forms 1.破解版网上很多,提供一个参考的下载地址http://dx. ...