StringUtils 类的使用

StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String
类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException
,而是做了相应处理,例如,如果输入为 null 则返回也是 null
等,具体可以查看源代码)。 
除了构造器,StringUtils 中一共有130多个方法,并且都是 static
的,所以我们可以这样调用
StringUtils.xxx() 
下面分别对一些常用方法做简要介绍: 
1.
public static boolean isEmpty(String
str) 
判断某字符串是否为空,为空的标准是 str==null 或
str.length()==0 
下面是 StringUtils
判断是否为空的示例: 

StringUtils.isEmpty(null) =
true 
StringUtils.isEmpty("") =
true 
StringUtils.isEmpty(" ") = false //注意在 StringUtils
中空格作非空处理 
StringUtils.isEmpty(" ") =
false 
StringUtils.isEmpty("bob") =
false 
StringUtils.isEmpty(" bob ") =
false 

2. public static boolean isNotEmpty(String
str) 
判断某字符串是否非空,等于 !isEmpty(String
str) 
下面是示例: 

StringUtils.isNotEmpty(null)
= false 
StringUtils.isNotEmpty("") =
false 
StringUtils.isNotEmpty(" ") =
true 
StringUtils.isNotEmpty(" ") =
true 
StringUtils.isNotEmpty("bob") =
true 
StringUtils.isNotEmpty(" bob ") =
true 
3. public static boolean isBlank(String
str) 
判断某字符串是否为空或长度为0或由空白符(whitespace)
构成 
下面是示例: 
StringUtils.isBlank(null)
= true 
StringUtils.isBlank("") =
true 
StringUtils.isBlank(" ") =
true 
StringUtils.isBlank(" ") =
true 
StringUtils.isBlank("\t \n \f \r") = true
//对于制表符、换行符、换页符和回车符 

StringUtils.isBlank()
//均识为空白符 
StringUtils.isBlank("\b") = false
//"\b"为单词边界符 
StringUtils.isBlank("bob") =
false 
StringUtils.isBlank(" bob ") =
false 
4. public static boolean isNotBlank(String
str) 
判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成,等于
!isBlank(String
str) 
下面是示例: 

StringUtils.isNotBlank(null)
= false 
StringUtils.isNotBlank("") =
false 
StringUtils.isNotBlank(" ") =
false 
StringUtils.isNotBlank(" ") =
false 
StringUtils.isNotBlank("\t \n \f \r") =
false 
StringUtils.isNotBlank("\b") =
true 
StringUtils.isNotBlank("bob") =
true 
StringUtils.isNotBlank(" bob ") =
true 
5. public static String trim(String
str) 
去掉字符串两端的控制符(control characters, char <= 32) ,
如果输入为 null
则返回null 
下面是示例: 
StringUtils.trim(null)
= null 
StringUtils.trim("") =
"" 
StringUtils.trim(" ") =
"" 
StringUtils.trim(" \b \t \n \f \r ") =
"" 
StringUtils.trim(" \n\tss \b") =
"ss" 
StringUtils.trim(" d d dd ") = "d d
dd" 
StringUtils.trim("dd ") =
"dd" 
StringUtils.trim(" dd ") =
"dd" 
6. public static String trimToNull(String
str) 
去掉字符串两端的控制符(control characters, char <= 32) ,如果变为
null 或"",则返回
null 
下面是示例: 
StringUtils.trimToNull(null)
= null 
StringUtils.trimToNull("") =
null 
StringUtils.trimToNull(" ") =
null 
StringUtils.trimToNull(" \b \t \n \f \r ") =
null 
StringUtils.trimToNull(" \n\tss \b") =
"ss" 
StringUtils.trimToNull(" d d dd ") = "d d
dd" 
StringUtils.trimToNull("dd ") =
"dd" 
StringUtils.trimToNull(" dd ") =
"dd" 
7. public static String trimToEmpty(String
str) 
去掉字符串两端的控制符(control characters, char <= 32) ,如果变为
null 或 "" ,则返回
"" 
下面是示例: 
StringUtils.trimToEmpty(null)
= "" 
StringUtils.trimToEmpty("") =
"" 
StringUtils.trimToEmpty(" ") =
"" 
StringUtils.trimToEmpty(" \b \t \n \f \r ") =
"" 
StringUtils.trimToEmpty(" \n\tss \b") =
"ss" 
StringUtils.trimToEmpty(" d d dd ") = "d d
dd" 
StringUtils.trimToEmpty("dd ") =
"dd" 
StringUtils.trimToEmpty(" dd ") =
"dd" 
8. public static String strip(String
str) 
去掉字符串两端的空白符(whitespace) ,如果输入为 null 则返回
null 
下面是示例(注意和 trim()
的区别): 
StringUtils.strip(null) =
null 
StringUtils.strip("") =
"" 
StringUtils.strip(" ") =
"" 
StringUtils.strip(" \b \t \n \f \r ") =
"\b" 
StringUtils.strip(" \n\tss \b") = "ss
\b" 
StringUtils.strip(" d d dd ") = "d d
dd" 
StringUtils.strip("dd ") =
"dd" 
StringUtils.strip(" dd ") =
"dd" 
9. public static String stripToNull(String
str) 
去掉字符串两端的空白符(whitespace) ,如果变为 null 或"",则返回
null 
下面是示例(注意和 trimToNull()
的区别): 
StringUtils.stripToNull(null) =
null 
StringUtils.stripToNull("") =
null 
StringUtils.stripToNull(" ") =
null 
StringUtils.stripToNull(" \b \t \n \f \r ") =
"\b" 
StringUtils.stripToNull(" \n\tss \b") = "ss
\b" 
StringUtils.stripToNull(" d d dd ") = "d d
dd" 
StringUtils.stripToNull("dd ") =
"dd" 
StringUtils.stripToNull(" dd ") =
"dd" 
10. public static String stripToEmpty(String
str) 
去掉字符串两端的空白符(whitespace) ,如果变为 null 或""
,则返回"" 
下面是示例(注意和 trimToEmpty()
的区别): 
StringUtils.stripToNull(null) =
"" 
StringUtils.stripToNull("") =
"" 
StringUtils.stripToNull(" ") =
"" 
StringUtils.stripToNull(" \b \t \n \f \r ") =
"\b" 
StringUtils.stripToNull(" \n\tss \b") = "ss
\b" 
StringUtils.stripToNull(" d d dd ") = "d d
dd" 
StringUtils.stripToNull("dd ") =
"dd" 
StringUtils.stripToNull(" dd ") =
"dd" 

以下方法只介绍其功能,不再举例: 
11. public
static String strip(String str, String stripChars) 
去掉 str
两端的在 stripChars 中的字符。 
如果 str 为 null 或等于""
,则返回它本身; 
如果 stripChars 为 null 或"" ,则返回 strip(String str)
。 
12. public static String stripStart(String str, String
stripChars) 
和11相似,去掉 str 前端的在 stripChars
中的字符。 
13. public static String stripEnd(String str, String
stripChars) 
和11相似,去掉 str 末端的在 stripChars
中的字符。 
14. public static String[] stripAll(String[]
strs) 
对字符串数组中的每个字符串进行 strip(String str)
,然后返回。 
如果 strs 为 null 或 strs 长度为0,则返回 strs
本身 
15. public static String[] stripAll(String[] strs,
String stripChars) 
对字符串数组中的每个字符串进行 strip(String str,
String stripChars) ,然后返回。 
如果 strs 为 null 或 strs 长度为0,则返回
strs 本身 
16. public static boolean equals(String str1,
String
str2) 
比较两个字符串是否相等,如果两个均为空则也认为相等。 
17.
public static boolean equalsIgnoreCase(String str1, String
str2) 
比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。 
18.
public static int indexOf(String str, char
searchChar) 
返回字符 searchChar 在字符串 str
中第一次出现的位置。 
如果 searchChar 没有在 str
中出现则返回-1, 
如果 str 为 null 或 ""
,则也返回-1 
19. public static int indexOf(String str, char
searchChar, int startPos) 
返回字符 searchChar 从 startPos
开始在字符串 str 中第一次出现的位置。 
如果从 startPos 开始 searchChar 没有在 str
中出现则返回-1, 
如果 str 为 null 或 ""
,则也返回-1 
20. public static int indexOf(String str, String
searchStr) 
返回字符串 searchStr 在字符串 str
中第一次出现的位置。 
如果 str 为 null 或 searchStr 为 null
则返回-1, 
如果 searchStr 为 "" ,且 str 为不为 null
,则返回0, 
如果 searchStr 不在 str
中,则返回-1 
21. public static int ordinalIndexOf(String str,
String searchStr, int ordinal) 
返回字符串 searchStr 在字符串 str 中第
ordinal 次出现的位置。 
如果 str=null 或 searchStr=null 或
ordinal<=0
则返回-1 
举例(*代表任意字符串): 
StringUtils.ordinalIndexOf(null,
*, *) = -1 
StringUtils.ordinalIndexOf(*, null, *) =
-1 
StringUtils.ordinalIndexOf("", "", *) =

StringUtils.ordinalIndexOf("aabaabaa", "a", 1) =

StringUtils.ordinalIndexOf("aabaabaa", "a", 2) =

StringUtils.ordinalIndexOf("aabaabaa", "b", 1) =

StringUtils.ordinalIndexOf("aabaabaa", "b", 2) =

StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) =

StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) =

StringUtils.ordinalIndexOf("aabaabaa", "bc", 1) =
-1 
StringUtils.ordinalIndexOf("aabaabaa", "", 1) =

StringUtils.ordinalIndexOf("aabaabaa", "", 2) =

22. public static int indexOf(String str, String
searchStr, int startPos) 
返回字符串 searchStr 从 startPos 开始在字符串
str
中第一次出现的位置。 
举例(*代表任意字符串): 
StringUtils.indexOf(null,
*, *) = -1 
StringUtils.indexOf(*, null, *) =
-1 
StringUtils.indexOf("", "", 0) =

StringUtils.indexOf("aabaabaa", "a", 0) =

StringUtils.indexOf("aabaabaa", "b", 0) =

StringUtils.indexOf("aabaabaa", "ab", 0) =

StringUtils.indexOf("aabaabaa", "b", 3) =

StringUtils.indexOf("aabaabaa", "b", 9) =
-1 
StringUtils.indexOf("aabaabaa", "b", -1) =

StringUtils.indexOf("aabaabaa", "", 2) =

StringUtils.indexOf("abc", "", 9) =

23. public static int lastIndexOf(String str, char
searchChar) 
基本原理同18 
24. public
static int lastIndexOf(String str, char searchChar, int
startPos) 
基本原理同19 
25. public static
int lastIndexOf(String str, String
searchStr) 
基本原理同20 
26. public static
int lastIndexOf(String str, String searchStr, int
startPos) 
基本原理同22 
另附: 
String
的 split(String regex) 方法的用法 
如果我们需要把某个字符串拆分为字符串数组,则通常用
split(String regex) 来实现。 
例如: 
Java代码
复制代码 

1. String str =
"aa,bb,cc,dd"; 
2. String[] strArray =
str.split(","); 
3.
System.out.println(strArray.length); 
4. for (int i = 0; i
< strArray.length; i++) { 
5.
System.out.println(strArray[i]); 
6.


String str = "aa,bb,cc,dd"; String[] strArray =
str.split(","); System.out.println(strArray.length); for (int i = 0; i <
strArray.length; i++) { System.out.println(strArray[i]);


结果为: 

aa 
bb 
cc 
dd 
如果, 
String
str = "aa.bb.cc.dd"; 
String[] strArray =
str.split("."); 
则结果为:0 
为什么结果不是我们所想的呢,原因是参数
String regex 是正则表达式 (regular expression) 而不是普通字符串,而 "."
在正则表达式中有特殊含义,表示匹配所有单个字符。如果要那样拆分,我们必须给 "." 进行转义,String[] strArray =
str.split(".") 修改为 String[] strArray = str.split("\\.")
即可。 
另外有关 StringUtils 的详细 API
请参见官方网站:

StringUtils 类的使用,码迷,mamicode.com

时间: 2024-08-29 05:23:56

StringUtils 类的使用的相关文章

源码分析八(org.springframework.util包之StringUtils类))

一:spring框架util包中的StringUtils类主要是处理关于字符串 的功能方法,下面直接结合代码分析: //判断字符串是否为空,如果为nul或者""则返回true,否则返回false public static boolean isEmpty(Object str) { return str == null || "".equals(str); } //判断字符串是否有长度,不等于null同时长度大于0,则为true //这里重载两个hasLength方

org.apache.commons.lang3.StringUtils类中isBlank和isEmpty方法的区别

相信很多java程序员在写代码的时候遇到判断某字符串是否为空的时候会用到StringUtils类中isBlank和isEmpty方法,这两个方法到底有什么区别呢?我们用一段代码来阐述这个区别吧: 1 @Test 2 public void blankEmpty() { 3 String str = " "; 4 System.out.println("Is empty ? " + StringUtils.isEmpty(str)); 5 System.out.pri

StringUtils 字符串工具类

package com.thinkgem.jeesite.common.utils; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.List; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; i

StringUtils工具类的使用

不知道你们的代码中是否会出现如下情况if("".equals(str) && str == null) {}, 反正我以前判断字符串为空的时候经常这么干,但实际上这么写代码很啰嗦,commons-lang-2.5.jar包中供了一个很方便的工具类StringUtils,今天就是简单介绍一下这个工具类支持哪些常用功能,心中有个数,以后写代码的时候也可以直接用. 1.判断字符串是否为空isEmpty()和isBlank() String str1="";

JAVA StringUtils工具类

org.apache.commons.lang Class StringUtils java.lang.Object org.apache.commons.lang.StringUtils public class StringUtilsextends Object Operations on String that are null safe. IsEmpty/IsBlank - checks if a String contains text Trim/Strip - removes lea

StringUtils工具类常用方法汇总1(判空、转换、移除、替换、反转)

Apache commons lang3包下的StringUtils工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便.最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方法总结了一下,方便以后查阅,大家有兴趣也可以看一下.   首先需要说明的一点是,StringUtils类在操作字符串时,即使操作的为null值也是安全的,不会报NullPointerException,这一点在后面的例子中再具体说明.因此,在操作字符串时使用StringUtils相比使用原生的Strin

StringUtils工具类常用api &lt;转&gt;

该工具类是用于操作Java.lang.String类的. StringUtils类与String类的区别在于:此类是null安全的,即如果输入参数String为null,则不会抛出NullPointerException异常,代码更健壮.以函数isEmpty为例子:存在字符串stringTest, 若该字符串为空,返回1.使用String类判断方法为: if(null !=stringTest){ if(stringTest.isEmpty()){ return true; } }else{ r

Java如何扫描指定package下所有的类

在写一个MVC框架,需要从包中扫描出组件并注册到容器中,而JDK没有提供现成的从方法,只能自己实现. 功能: 给定一个包名,编程得到该包(和其所有子包)下所有的类文件.如,输入包名com.myapp.util, 输出该包下类的全限定名com.myapp.util.StringUtils, com.app.util.ImageUtils等. 思路: 有的web server在部署运行时会解压jar包,因此class文件会在普通的文件目录下.如果web server不解压jar包,则class文件会

Java中String类(字符串操作)的10个常见问题和解决方法

注:来自百度搜索,还没有码一遍,一定要码!! 1. 字符串比较,使用 "==" 还是 equals() ?简单来说, "==" 判断两个引用的是不是同一个内存地址(同一个物理对象).而 equals 判断两个字符串的值是否相等.除非你想判断两个string引用是否同一个对象,否则应该总是使用 equals()方法.如果你了解 字符串的驻留 ( String Interning ) 则会更好地理解这个问题 2. 对于敏感信息,为何使用char[]要比String更好?