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. ...
随机推荐
- from __future__ import包的作用
__future__是python2的概念,其实是为了使用python2时能够去调用一些在python3中实现的特性 1.absolute_import from __future__ import ...
- Vim 去除因为 Unix 和 Windows 换行符不同带来的 ^M 问题
由于各操作系统对换行符的处理不同, Unix: \n Windows : \r\n Mac : \r 所以有时 Vim 打开的文件会有如下情况: 解决方法为:在 Vim 中执行命令 :%s/\r//g ...
- mac 下利用AndroidStudio APK获取签名信息
注:网上没找到特别好的.不是xxx.keystore 就是debug.keystore 而真正去找这些目录的时候系统就会提示没有这个秘钥库文件.所以就悲剧了 下面附上快速查看APK签名信息的方法(SH ...
- phpstorm 免费激活码
打开网址 http://idea.lanyus.com/ 选择获取注册码,复制生成的验证码 安装完成后,打开软件,依次选择菜单栏 Help -> Register-> Activation ...
- Python爬虫 获得淘宝商品评论
自从写了第一个sina爬虫,便一发不可收拾.进入淘宝评论爬虫正题: 在做这个的时候,也没有深思到底爬取商品评论有什么用,后来,爬下来了数据.觉得这些数据可以用于帮助分析商品的评论,从而为用户选择商品提 ...
- CSS的插入和选择器介绍
一.认识CSS样式 1.定义 CSS全称:层叠样式表(Cascading Style Sheets) 主要作用:定义HTML内容在浏览器内的显示样式,比如文字大小.颜色.字体加粗等 优点:通过定义某个 ...
- C# 相关面试试题简单的总结
最近一个搞NET开发的朋友离职了,想让我给他找点关于NET的相关面试题,准备抱一下佛脚,迎接新的挑战. 我赶紧找到以前检索的各种宝典,试题,今天梳理一下关于NET的基础知识点. 1.面向对象语言的三大 ...
- 【原创】一个线程oom,进程里其他线程还能运行吗?
引言 这题是一个网友@大脸猫爱吃鱼给我的提问,出自今年校招美团三面的一个真题.大致如下 一个进程有3个线程,如果一个线程抛出oom,其他两个线程还能运行么? 先说一下答案,答案是还能运行 不瞒大家说, ...
- 警告:Establishing SSL connection without server's identity verification is not recommended
SpringBoot启东时红色警告: Mon Jun 04 00:53:48 CST 2018 WARN: Establishing SSL connection without server's i ...
- mysql及python交互
mysql在之前写过一次,那时是我刚刚进入博客,今天介绍一下mysql的python交互,当然前面会把mysql基本概述一下. 目录: 一.命令脚本(mysql) 1.基本命令 2.数据库操作命令 3 ...