commons-lang
今天在编码的过程中,对于null,采用==null进行判断。并且为了过滤"",使用了str.trim().length()==0,当str为null时,报空指针异常。
于是决定使用Apache的commons-lang,简化代码的同时也减少程序的bug。现对学习内容进行总结。
首先导入commons-lang包,为方便测试,导入Junit进行单元测试。代码如下:
public class Main {
Logger logger = Logger.getLogger(Main.class.getName());
public static void main(String[] args) {
System.out.println("Hello World!");
}
@Test
public void equalsTest() {
System.out.println(StringUtils.equals("he", "he")); //T
System.out.println(StringUtils.equals("he", "ho")); //F
System.out.println(StringUtils.equals("he", "HE")); //F
System.out.println(StringUtils.equalsIgnoreCase("he", "he")); //T
System.out.println(StringUtils.equalsIgnoreCase("he", "ho")); //F
System.out.println(StringUtils.equalsIgnoreCase("he", "HE")); //T
}
@Test
public void testIsEmpty(){
System.out.println(StringUtils.isEmpty(null)); //T
System.out.println(StringUtils.isEmpty("")); //T
System.out.println(StringUtils.isEmpty(" ")); //F
System.out.println(StringUtils.isEmpty("bob")); //F
System.out.println(StringUtils.isEmpty(" bob ")); //F
}
@Test
public void testIsNotEmpty(){
System.out.println(StringUtils.isNotEmpty(null)); //F
System.out.println(StringUtils.isNotEmpty("")); //F
System.out.println(StringUtils.isNotEmpty(" ")); //T
System.out.println(StringUtils.isNotEmpty("bob")); //T
System.out.println(StringUtils.isNotEmpty(" bob ")); //T
}
@Test
public void testIsBlank(){
System.out.println(StringUtils.isBlank(null)); // T
System.out.println(StringUtils.isBlank("")); // T
System.out.println(StringUtils.isBlank(" ")); // T
System.out.println(StringUtils.isBlank("bob")); //F
System.out.println(StringUtils.isBlank(" bob ")); //F
}
@Test
public void testIsNotBlank(){
System.out.println(StringUtils.isNotBlank(null)); //F
System.out.println(StringUtils.isNotBlank("")); //F
System.out.println(StringUtils.isNotBlank(" ")); //F
System.out.println(StringUtils.isNotBlank("bob")); // T
System.out.println(StringUtils.isNotBlank(" bob ")); // T
}
//public static String[] split(String str,String separatorChars)
@Test
public void testSplit() {
//默认半角空格分割
String str1 = "aaa bbb ccc";
String[] dim1 = StringUtils.split(str1); // => ["aaa", "bbb", "ccc"]
for(int i = 0;i<dim1.length;i++) {
System.out.println(dim1[i]); //
}
String contrivedExampleString = "one.two.three.four";
String[] result = contrivedExampleString.split(".");
System.out.println(result.length); // 0
//指定分隔符
String[] res= StringUtils.split(contrivedExampleString,".");
for(int i = 0;i<res.length;i++) {
System.out.println(res[i]); //
}
//去除空字符串
String str3 = "aaa,,bbb";
String[] dim3 = StringUtils.split(str3, ","); // => ["aaa", "bbb"]
for(int i = 0;i<dim3.length;i++) {
System.out.println(dim3[i]); //
}
//包含空字符串
String str4 = "aaa,,bbb";
String[] dim4 = StringUtils.splitPreserveAllTokens(str4, ","); // => ["aaa", "", "bbb"]
System.out.println(dim4.length);//
}
@Test
public void testJoin() {
String[] numbers = {"one", "two", "three"};
String numberStr= StringUtils.join(numbers,",");
System.out.println(numberStr); // returns "one,two,three"
}
@Test
public void trimTest() {
System.out.println(StringUtils.trim(null)); // null
System.out.println(StringUtils.trim("")); // ""
System.out.println(StringUtils.trim(" ")); // ""
System.out.println(StringUtils.trim("abc")); // "abc"
System.out.println(StringUtils.trim(" abc")); // "abc"
System.out.println(StringUtils.trim(" abc ")); // "abc"
System.out.println(StringUtils.trim(" ab c ")); // "ab c"
}
@Test
public void stripTest() {
System.out.println(StringUtils.strip(null)); // null
System.out.println(StringUtils.strip("")); // ""
System.out.println(StringUtils.strip(" ")); // ""
System.out.println(StringUtils.strip("abc")); // "abc"
System.out.println(StringUtils.strip(" abc")); // "abc"
System.out.println(StringUtils.strip("abc ")); // "abc"
System.out.println(StringUtils.strip(" abc ")); // "abc"
System.out.println(StringUtils.strip(" ab c ")); // "ab c"
}
@Test
public void testCountMatches() {
int nCount = StringUtils.countMatches("UPDATE tb_table SET xx=?,xyz=?, sss=? WHERE id=?", "?");
System.out.println(nCount); //
}
@Test
public void reverseTest() {
String str = "hello";
String res= StringUtils.reverse(str); //olleh
System.out.println(res);
}
@Test
public void repeatTest() {
String str = "hello";
String res1= StringUtils.repeat(str, 3); //hellohellohello
String res2= StringUtils.repeat(str,",",3); //hello,hello,hello
System.out.println(res1);
System.out.println(res2);
}
}
参考文献
commons-lang3-3.4-src\src\test\
http://www.cnblogs.com/ITtangtang/p/3966955.html
http://ray-yui.iteye.com/blog/1958319
commons-lang的更多相关文章
- Apache Commons Lang
http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/package- ...
- 让时间处理简单化 【第三方扩展类库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. ...
随机推荐
- 【消息队列】 RabbitMQ教程汇总
https://www.cnblogs.com/wyt007/category/1218660.html
- appium-基本操作的再次封装(加上文件路径、log、截图、异常处理)
一:日志 二:文件路径 三:截图 四:异常处理(对基本操作,例如:等待元素出现.点击.按键灯进行封装.加上截图和日志记录)
- Uncaught ReferenceError: layer is not defined
错误详细信息,如下: Uncaught ReferenceError: layer is not defined' 关键词就是not defined 未定义,那么解决方案就是给它定义. 原来的问题代码 ...
- 机器学习三剑客之Numpy库基本操作
NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机 ...
- XSS高级利用
XSS会话劫持 (1)Cookie简介 Cookie是能够让网站服务器把少量文本数据存储到客户端的硬盘.内存,或者是从客户端的硬盘.内存读取数据的一种技术. Cookie是一段随HTTP请求.响应一起 ...
- 环境部署(七):linux下Jenkins+Git+JDK持续集成
前面几篇博客介绍了linux下安装Jenkins.Git.JDK以及Git基础教程和Git关联github等内容,这篇博客,介绍下如何在linux服务器中利用它们构建持续集成环境... 一.准备工作 ...
- Linux并发与同步专题 (1)原子操作和内存屏障
关键词:. <Linux并发与同步专题 (1)原子操作和内存屏障> <Linux并发与同步专题 (2)spinlock> <Linux并发与同步专题 (3) 信号量> ...
- face recognition[Euclidean-distance-based loss][FaceNet]
本文来自<FaceNet: A Unified Embedding for Face Recognition and Clustering>.时间线为2015年6月.是谷歌的作品. 0 引 ...
- keras神经网络三个例子
keras构造神经网络,非常之方便!以后就它了.本文给出了三个例子,都是普通的神经网络 例一.离散输出,单标签.多分类 例二.图像识别,单标签.多分类.没有用到卷积神经网络(CNN) 例三.时序预测, ...
- SQL Server-索引故事的遥远由来,原来是这样的?(二十八)
前言 前段时间工作比较忙,每天回来也时不时去写有关ASP.NET Core的文章,无论是项目当中遇到的也好还是自学的也好都比较严谨的去叙述,喜欢分享,乐于分享这是我一直以来的态度,当然从中也会有些许错 ...