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方法了,为何我们还需要一个第三方的实现呢?
这个问题很好,让我们来看看下面这些代码,看看有何问题?
public void doStuffWithString(String stringParam) {
if(stringParam.equals("MyStringValue")) {
// do stuff }
}
这个可能有NullPointerException出现,那么有几个办法处理:
public void safeDoStuffWithString1(String stringParam) {
if(stringParam != null &&
stringParam.equals("MyStringValue")) {
// do stuff
}
}
public void safeDoStuffWithString2(String stringParm) {
if("MyStringValue".equals(stringParam))
{
// do stuff
}
}
我本人不喜欢上面的两个方法,第一个看起来太臃肿,第二个看起来像错误的。这里我们就可以用一些StringUtils类了,这个类提供的equals方法是空指针安全的,不用担心传递给他的是什么参数,他不会抛出空指针异常,这样写:
public void safeDoStuffWithString3(String stringParam) {
if(StringUtils.equals(stringParam,"MyStringValue))
{
// do stuff
}
}
这个是我个人的喜好,但是这个确实看起来比较简单易读。前面的两个方法虽然么有什么问题,但是我想StringUtils.equals还是值得考虑的。
2)isEmpty,isNotEmpty,isBlank,isNotBlank
和前面一样,这些方法相对于jdk提供的isEmpty方法来说,多了一个“空指针安全”,即不用考虑传递参数的空值问题,让我们来看一个例子:
if(myString != null && !myString.isEmpty()) {
// 有点臃肿是把?
// Do stuff with myString
}
if(StringUtils.isNotEmpty(myString)) { // 好多了吧
// Do stuff with myString
}
Blank和empty的区别
isBlank将在字符串含有空白字符的时候,返回true,例如:
String someWhiteSpace = " \t \n";
StringUtils.isEmpty(someWhiteSpace); // false
StringUtils.isBlank(someWhiteSpace); // true
3)public static String[] split(String str,String separatorChars)
当然,这个方法相对于String.split也是空指针安全的,当你尝试split一个null字符串的时候,将返回Null,一个Null的分隔符将按照空白字符分隔字符串,但是,还有一个理由让你可考虑使用StringUtils.split()方法,就是jdk自带的String.split由于支持正则表达式进行分隔,所以可能带来意想不到的后果,例如:
public void possiblyNotWhatYouWant() {
String contrivedExampleString = "one.two.three.four";
String[] result = contrivedExampleString.split(".");
System.out.println(result.length); // 0
}
上面很明显你希望按照.分隔,但是jdk理解的“.”是正则表达式的任意字符,导致字符串内任意字符都匹配,返回一个size=0的字符串数组。其实你只要传递"\\."就行了,但是这个确实是一个问题。
这样,使用StringUtils.split就简单多了,另外,我测试还发现StringUtils.split比jdk自带的split要快四倍。
4)public static String join(Iterable iterable,String separator)
这个方法确实很实用,因为jdk自身没有提供,简单使用方法:
String[] numbers = {"one", "two", "three"};
StringUtils.join(numbers,","); // returns "one,two,three"
当然你可以传递一个数字或者迭代序列iterators.
好了,我确信,这个库确实是一个比较实用的库,推荐大家使用。
API请参考:
http://commons.apache.org/lang/api-3.1/org/apache/commons/lang3/StringUtils.html
分享到:
相关推荐
org.apache.commons.lang.StringUtils.class org.apache.commons.lang.SystemUtils.class org.apache.commons.lang.UnhandledException.class org.apache.commons.lang.Validate.class org.apache.commons.lang....
org.apache.commons.lang.StringUtils.class org.apache.commons.lang.SystemUtils.class org.apache.commons.lang.UnhandledException.class org.apache.commons.lang.Validate.class org.apache.commons.lang....
在给定的标题 "org.apache.commons.lang3.StringUtils.jar.rar" 中,我们可以看到这个压缩包包含的是 `StringUtils.jar`,实际上它是一个 `common-lang3.jar` 文件的别名。这个 JAR 包是 Apache Commons Lang 项目的...
需要先 import org.apache.commons.lang3.StringUtils; /* 内含 common-lang3.jar commons-lang3-3.9-bin.zip commons-lang3-3.9-src.zip 使用说明.txt*/ public static String getClientIp(HttpServletRequest ...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了大量Java类库,以帮助开发者处理常见的编程任务。这些类库弥补了Java标准库中的不足,为开发人员提供了一套强大且实用的工具。在本压缩包中,您...
Apache Commons是Java开发中不可或缺的一部分,它提供了一系列实用的工具类和组件,极大地丰富了Java标准库的功能。这个工具集包含了许多模块,每个模块都专注于特定的编程任务,旨在简化和优化开发流程。以下是一些...
Apache Commons Lang是一个非常重要的Java库,它为Java标准类库提供了许多实用的工具类和扩展。这个资源包包含了丰富的功能,极大地增强了Java开发者的生产力。标题中的"org.apache.commons.lang包"指的是该库的主要...
1. **字符串操作**: Commons Lang 提供了 `StringUtils` 类,它包含了一系列静态方法,用于执行复杂的字符串操作,如空白字符处理、分割、连接、替换、比较等,这些方法比Java内置的String类功能更加强大。...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了大量的 Java 类库,这些类库包含了许多实用的功能,极大地丰富了 Java 核心库的功能,为开发者提供了更强大的工具集。在Web开发中,Apache ...
Apache Commons 是一个由Apache软件基金会开发的Java库集合,它为Java程序员提供了许多实用工具类,简化了常见的编程任务。这个"Apache Commons API.rar"压缩包包含五个关键的Apache Commons子项目的API文档,分别是...
Apache Commons是Apache软件基金会提供的一个开源Java工具包,它包含了许多独立的Java库,涉及的领域包括字符串操作、数学运算、数组操作、对象反射、XML处理等。本知识点将围绕Apache Commons文档中的关键组件展开...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了大量的 Java 类库,以帮助开发者解决常见的编程任务。这些类库弥补了 Java 核心库中的不足,为开发人员提供了更方便、功能更丰富的工具。"org....
Apache Commons Lang是Java开发中的一个非常重要的开源工具库,它提供了一系列实用的工具类,极大地丰富了Java的标准库,为开发者提供了更便捷、高效的方法来处理常见的编程任务。Lang包主要包含了对字符串操作、...
`org.apache.commons.lang3.StringUtils`是Lang包中的一个关键类,它提供了大量与字符串操作相关的静态方法。这些方法涵盖了字符串的检查、比较、转换、格式化以及分割等常见任务。例如: 1. `isEmpty()`:检查字符...
Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了大量的 Java 类库,以弥补 Java 核心库中的不足。"org.apache.commons" 是这个项目的主要命名空间,包含了许多子包,用于实现各种实用功能。在这...
Apache Commons 是 Apache 软件基金会的一个开源项目,它提供了大量的 Java 类库,这些类库在许多实际的软件开发项目中都非常有用。"org.apache.commons" 指的是 Apache Commons 项目下的顶级命名空间,包含了多个子...
Apache Commons 是一个由Apache软件基金会维护的Java库集合,它为开发人员提供了大量实用的工具类和组件,极大地简化了常见的编程任务。这个库包含了众多模块,每个模块专注于特定的功能领域,例如字符串处理、数学...
Apache Commons Lang 3.6 是一个Java库,它提供了许多实用工具类,扩展了Java语言的功能,弥补了标准库中的不足。这个版本的API帮助文档是开发者的重要参考资料,特别是对于那些希望深入理解和利用该库功能的程序员...
commons-lang3-3.1 StringUtils字符串jar包 org.apache.commons.lang3.StringUtils的jar包
Apache Commons 是一个由 Apache 软件基金会维护的开源项目,它提供了许多Java库,用于解决常见的编程任务。这些库增强了Java标准库的功能,为开发者提供了便利和效率。在这个特定的压缩包中,包含了几个Apache ...