今天在编码的过程中,对于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的更多相关文章

  1. Apache Commons Lang

    http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/package- ...

  2. 让时间处理简单化 【第三方扩展类库org.apache.commons.lang.time】

    JAVA的时间日期处理一直是一个比较复杂的问题,大多数程序员都不能很轻松的来处理这些问题.首先Java中关于时间的类,从 JDK 1.1 开始,Date的作用很有限,相应的功能已由Calendar与D ...

  3. 关于出现 org.apache.commons.lang.exception.NestableRuntimeException的解决方法

    最近做服务端和客户端之间的访问,出现了 org.apache.commons.lang.exception.NestableRuntimeException等状况.实在令人头大,翻到了一个很好的帖子说 ...

  4. org.apache.commons.lang.StringUtils中常用的方法

    org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...

  5. java转换json需要导入的jar包,org/apache/commons/lang/exception/NestableRuntimeException

    缺少相应jar包都会有异常,根据异常找jar包导入......     这里我说下lang包,因为这个包我找了好半天:   我用的是: commons-lang3-3.1.jar  出现异常: jav ...

  6. org.apache.commons.lang.StringUtils类

    org.apache.commons.lang.StringUtils类 本文摘自:(http://www.blogjava.net/japper/archive/2012/05/23/378946. ...

  7. 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 ...

  8. java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

    java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils Caused by: java.lang.ClassNotFou ...

  9. ssh整合启动tomcat报java.lang.ClassNotFoundException: org.apache.commons.lang.xwork.StringUtils

    今天搭建了一个ssh项目环境,整合后,访问项目首页,登录不进去,控制台报错,后来调试代码后,在获取数据库数据后,返回到action时,又进入了action导致死循环,其实这里是两个问题,控制台报错如下 ...

  10. 转 java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException

    转自:http://blog.csdn.net/zb0567/article/details/7893063 java.lang.ClassNotFoundException: org.apache. ...

随机推荐

  1. 洛谷题解 P1031 【均分纸牌】

    这道题很简单 原理是从左到右一个一个排,把差值m加起来加到后面一堆牌里 具体ac代码如下: #include<cstdio> #include<iostream> #inclu ...

  2. OpenCV3计算机视觉Python语言实现笔记(四)

    1. Canny边缘检测 OpenCV提供了Canny函数来识别边缘.Canny边缘检测算法有5个步骤:使用高斯滤波器对图像进行去噪.计算梯度.在边缘上使用非最大抑制(NMS).在检测到的边缘上使用双 ...

  3. odoo 基于SQL View视图的model类

    在做odoo的过程中,会涉及到多表的查询, 尤其是做报表的时候这种情况更甚,这样下来会做很多的关联,不是很方便.odoo提供了一种机制,即基于视图的model类.代码地址在这里. 具体过程如下: 1. ...

  4. Roslyn入门(二)-C#语义

    先决条件 Visual Studio 2017 .NET Compiler Platform SDK Rosyln入门(一)-C#语法分析 简介 今天,Visual Basic和C#编译器是黑盒子:输 ...

  5. JS判断当前设备类型

    CSS3出来后,我们一般都是通过@media媒体查询来实现网页自适应,但是有时候,还是需要我们根据不同的设备来对应的做不同的显示,这时候,我们需要知道当前用户访问我们的界面用的是什么设备,怎么获取呢? ...

  6. Nginx监控运维

    Nginx是一个开源.免费.高性能的HTTP和反向代理服务器,也可以用于IMAP/POP3代理服务器.充分利用Nginx的特性,可以有效解决流量高并发请求.cc攻击等问题. 本文探讨了电商场景下Ngi ...

  7. Python_内置函数2_44

    字符串类型代码执行: exec('print(123)') eval('print(123)') print(eval('1*2+3+4')) # 有返回值 print(exec('1+2+3+4') ...

  8. Linux安装Apache常见报错(二)

    配置Apache提示报错configure error: APR could not be located. Please use the --with-apr option. 解决办法: ./con ...

  9. Windows10常用快捷键

    1. 打开注册表 ctrl+R   --->   regedit   2.打开资源管理器 win + E    3.切换到桌面 win + D   再按一次可以进行还原   4.锁屏 win+ ...

  10. 如何入门vue之一

    入门vue 首先从vue的指令开始学起. vue的指令: v-if  根据是否得到的布尔值进行是否显示. v-show:根据是否得到的布尔值是否显示.不同的地方在于隐藏是style隐藏. v-on 监 ...