StringUtils 工具类的常用方法

原创 2015年07月08日 13:52:58
apache commons StringUtils介绍

org.apache.commons.lang.StringUtils


StringUtils是apache commons lang库(http://commons.apache.org/lang)旗下的一个工具类,提供了很多有用的处理字符串的方法,本文不打算把所有的方法都介绍一遍,我会介绍一些精选的常用的给大家。


目前StringUtils有两个版本可用,分别是较新的org.apache.commons.lang3.StringUtils和较老的 org.apache.commons.lang.StringUtils,他们有比较大的区别,前者需要JAVA 5,我想这个应该是我们希望使用的。


1)public static boolean equals(CharSequence str1,CharSequence str2)

我们就先从最简单的方法equals开始,和你想的一样,他需要两个字符串参数,当相同的时候返回true,否则返回false。

但是java.lang.String已经有现成的比较完美的equals方法了,为何我们还需要一个第三方的实现呢?

这个问题很好,让我们来看看下面这些代码,看看有何问题?

Java代码 
  1. public void doStuffWithString(String stringParam) {    
  2. if(stringParam.equals("MyStringValue")) {    
  3. // do stuff }    
  4. }   

这个可能有NullPointerException出现,那么有几个办法处理:

Java代码 
  1. public void safeDoStuffWithString1(String stringParam) {    
  2. if(stringParam != null &&    
  3. stringParam.equals("MyStringValue")) {    
  4. // do stuff    
  5. }    
  6. }     
  7. public void safeDoStuffWithString2(String stringParm) {    
  8. if("MyStringValue".equals(stringParam))    
  9. {    
  10. // do stuff    
  11. }    
  12. }   
我本人不喜欢上面的两个方法,第一个看起来太臃肿,第二个看起来像错误的。这里我们就可以用一些StringUtils类了,这个类提供的equals方法是空指针安全的,不用担心传递给他的是什么参数,他不会抛出空指针异常,这样写:

Java代码 
  1. public void safeDoStuffWithString3(String stringParam) {   
  2. if(StringUtils.equals(stringParam,"MyStringValue))    
  3. {    
  4. // do stuff    
  5. }   
  6. }
这个是我个人的喜好,但是这个确实看起来比较简单易读。前面的两个方法虽然么有什么问题,但是我想StringUtils.equals还是值得考虑的。

2)isEmpty,isNotEmpty,isBlank,isNotBlank

和前面一样,这些方法相对于jdk提供的isEmpty方法来说,多了一个“空指针安全”,即不用考虑传递参数的空值问题,让我们来看一个例子:

Java代码 
  1. if(myString != null && !myString.isEmpty()) {    
  2. // 有点臃肿是把?   
  3. // Do stuff with myString    
  4. }    
  5.     
  6. if(StringUtils.isNotEmpty(myString)) { // 好多了吧    
  7. // Do stuff with myString    
  8. }   

Blank和empty的区别

isBlank将在字符串含有空白字符的时候,返回true,例如:

Java代码 
  1. String someWhiteSpace = " \t \n";    
  2. StringUtils.isEmpty(someWhiteSpace); // false    
  3. StringUtils.isBlank(someWhiteSpace); // true   

3)public static String[] split(String str,String separatorChars)
当然,这个方法相对于String.split也是空指针安全的,当你尝试split一个null字符串的时候,将返回Null,一个Null的分隔符将 按照空白字符分隔字符串,但是,还有一个理由让你可考虑使用StringUtils.split()方法,就是jdk自带的String.split由于 支持正则表达式进行分隔,所以可能带来意想不到的后果,例如:
Java代码 
  1. public void possiblyNotWhatYouWant() {   
  2. String contrivedExampleString = "one.two.three.four";    
  3. String[] result = contrivedExampleString.split(".");    
  4. System.out.println(result.length); // 0    
  5. }  

上面很明显你希望按照.分隔,但是jdk理解的“.”是正则表达式的任意字符,导致字符串内任意字符都匹配,返回一个size=0的字符串数组。其实你只要传递"\\."就行了,但是这个确实是一个问题。 
这样,使用StringUtils.split就简单多了,另外,我测试还发现StringUtils.split比jdk自带的split要快四倍。

4)public static String join(Iterable iterable,String separator)
这个方法确实很实用,因为jdk自身没有提供,简单使用方法:

Java代码 
  1. String[] numbers = {"one""two""three"};   
  2. StringUtils.join(numbers,","); // returns "one,two,three"   

当然你可以传递一个数字或者迭代序列iterators.

好了,我确信,这个库确实是一个比较实用的库,推荐大家使用。

API请参考:http://commons.apache.org/lang/api-3.1/org/apache/commons/lang3/StringUtils.html

StringUtils工具类的常用方法

org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(...
  • u010109732
  • u010109732
  • 2016年07月27日 15:14
  • 821

自定义封装StringUtils常用工具类

自定义封装StringUtils常用工具类 package com.demo.utils;import java.util.ArrayList; import java.util.List; impo...
  • qq_35712358
  • qq_35712358
  • 2017年04月20日 08:50
  • 1292

StringUtils 常用方法介绍

StringUtils 是JDK自带的操作字符串的工具类,常用方法如下: import org.apache.commons.lang3.StringUtils; public class Stri...
  • wangxin1982314
  • wangxin1982314
  • 2016年01月14日 15:18
  • 635

StringUtils工具类的常用方法

最近在写代码的时候对字符串的处理比较多,尤其是在判断条件时候有时候不严谨就会抛异常,而且也比较冗余的感觉,网上看到一篇关于StringUtils工具类使用方法的介绍,感觉挺不错,收藏下来以后备用 ...
  • qq_33113141
  • qq_33113141
  • 2016年08月09日 14:24
  • 2120

StringUtils 工具类的常用方法

StringUtils 源码,使用的是commons-lang3-3.1包。 下载地址 http://commons.apache.org/lang/download_lang.cgi 以下是...
  • aiqinhai1016_
  • aiqinhai1016_
  • 2013年06月26日 09:26
  • 4199

【Java】StringUtils工具类常用方法详解

前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅。 1.isEmpty(String str) 是否为空,空格字符为fal...
  • hj7jay
  • hj7jay
  • 2017年07月20日 10:01
  • 788

Android StringUtils-字符串相关工具类

StringUtils是一个字符串相关工具类 功能: 1.待校验字符串 2.判断两字符串是否相等 3.null转为长度为0的字符串 4.返回字符串长度 5.首字母大写 6.首字母小写 7.反转字符...
  • firelightdragon
  • firelightdragon
  • 2016年11月07日 20:22
  • 973

关于apache下的一个StringUtils工具类的介绍

import java.util.Arrays; import org.apache.commons.lang.StringUtils; public class Test { /** ...
  • hu_xinxin
  • hu_xinxin
  • 2013年07月20日 11:20
  • 1737

StringUtils常用方法+StringUtils详细介绍

StringUtils用法+StringUtils详细介绍 博文来源:http://yijianfengvip.blog.163.com/blog/static/1752734322012122219...
  • java173842219
  • java173842219
  • 2017年03月06日 20:05
  • 1300

StringUtils工具类的常用方法

StringUtils 方法的操作对象是 java.lang.String 类型的对象,是对 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String ...
  • lei1160427600
  • lei1160427600
  • 2016年10月30日 20:40
  • 95
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:StringUtils 工具类的常用方法
举报原因:
原因补充:

(最多只允许输入30个字)