`
sunshine518
  • 浏览: 45638 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

StringUtils工具类的常用方法

阅读更多
StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。
多好啊.可以省去很多if--else;
除了构造器,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("", "", *) = 0
    StringUtils.ordinalIndexOf("aabaabaa", "a", 1) = 0
    StringUtils.ordinalIndexOf("aabaabaa", "a", 2) = 1
    StringUtils.ordinalIndexOf("aabaabaa", "b", 1) = 2
    StringUtils.ordinalIndexOf("aabaabaa", "b", 2) = 5
    StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
    StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
    StringUtils.ordinalIndexOf("aabaabaa", "bc", 1) = -1
    StringUtils.ordinalIndexOf("aabaabaa", "", 1) = 0
    StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0

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) = 0
    StringUtils.indexOf("aabaabaa", "a", 0) = 0
    StringUtils.indexOf("aabaabaa", "b", 0) = 2
    StringUtils.indexOf("aabaabaa", "ab", 0) = 1
    StringUtils.indexOf("aabaabaa", "b", 3) = 5
    StringUtils.indexOf("aabaabaa", "b", 9) = -1
    StringUtils.indexOf("aabaabaa", "b", -1) = 2
    StringUtils.indexOf("aabaabaa", "", 2) = 2
    StringUtils.indexOf("abc", "", 9) = 3

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 代码
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]);   
}  

结果为:
4
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请参见官方网站:http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html

分享到:
评论

相关推荐

    java自定义封装StringUtils常用工具类

    1. StringUtils 工具类的重要性:StringUtils 工具类是 Java 中最常用的字符串处理工具类之一,我们可以使用它来处理各种字符串操作。 2. 自定义封装 StringUtils 工具类的必要性:自定义封装 StringUtils 工具类...

    StringUtils工具类的使用

    `StringUtils`工具类是Java开发中非常常用的一个类库,主要提供了一系列静态方法来处理字符串。这个工具类在处理字符串的常见操作时提供了很大的便利,比如数组转字符串、空值检测、非空处理以及空格处理等。接下来...

    StringUtils 字符串常用工具

    在Java编程语言中,`StringUtils` 是一个非常实用的工具类,它提供了大量关于字符串操作的方法,极大地简化了对字符串的处理。这个类通常在处理字符串时提高代码的可读性和效率,尤其在处理字符串的空值、拼接、分割...

    自定封装StringUtils常用方法

    继承了org.apache.commons.lang3.StringUtils工具类,加入了部分常用方法,使用时直接添加到项目的公共utils下,同时在pom.xml加入依赖: &lt;!-- ...

    基于StringUtils工具类的常用方法介绍(必看篇)

    基于StringUtils工具类的常用方法介绍 StringUtils工具类是Java中一个功能强大且常用的工具类,提供了许多实用的字符串操作方法。下面将对StringUtils工具类的常用方法进行介绍。 判断字符串是否为空 * isEmpty...

    java常用工具类整理

    1. org.springframework.util.StringUtils 工具类用于判断字符串非空,常用的方法有 isEmpty()、hasText() 等。 2. org.springframework.util.CollectionUtils 工具类用于判断 List 和 Map 集合的非空,常用的方法有...

    一些java常用的工具类

    以下是对"一些java常用的工具类"的详细说明。 首先,工具类通常包含静态方法,这些方法不依赖于类的实例,可以直接调用,减少了对象创建的开销。这些类通常以“Utils”或“Helper”结尾,如Apache Commons Lang中的...

    SpringBoot之自带工具类常用示例

    本篇将详细介绍Spring Boot中的一些常用工具类及其示例。 1. **`java.time` API** Spring Boot完全支持Java 8的日期时间API,如`LocalDateTime`, `LocalDate`, `LocalTime`等。这些类提供了丰富的功能,如日期时间...

    java开发,30个常用工具类总结,全部来自项目实践中用到的工具类

    以下是对标题和描述中提到的几个常用工具类的详细说明: 1. **DateUtils**: `java.util.Date` 和 `java.time` 包含日期和时间的操作,但DateUtils通常是Apache Commons Lang库中的一个工具类,提供更方便的日期处理...

    开发常用工具类

    "开发常用工具类"这个主题涵盖了各种不同领域的实用功能,例如字符串处理、日期时间操作、集合操作等。下面将详细介绍这些工具类中的常见知识点: 1. **字符串工具类**: - `StringUtils`:Apache Commons Lang ...

    StringUtils API 使用方法

    `StringUtils` API 是 Apache Commons Lang 库中的一个实用工具类,专门为处理 `java.lang.String` 对象提供了丰富的静态方法。这个库是对 Java 标准库中的 `String` 类方法的一个扩展,尤其在处理 `null` 和空白...

    java常用工具类

    Java的`java.lang.String`类虽然已经提供了很多字符串操作的方法,但在实际开发中,`java.util.StringUtils`(来自Apache Commons Lang库)和`org.springframework.util.StringUtils`(Spring框架)等工具类提供了...

    java常用工具类汇总

    "Java常用工具类汇总"是一个集合了各种实用工具类的资源,旨在方便开发者在处理常见任务时提高效率。这个工具类库覆盖了字符串、文件、数组以及数学等多个方面,同时也提供了相应的API文档,使得开发者能够更好地...

    常用工具类jar包

    "常用工具类jar包"是一个集合了各种实用工具方法的库,主要包含了字符串处理、JSON转换处理、订单实体类以及商品库客户端调用的封装。下面将对这些知识点进行详细解释: 1. **字符串处理封装**: 字符串处理是编程...

    Java常用工具类

    Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...

    java常用工具类集合(也有转自他人的)

    "java常用工具类集合"是一个综合性的资源,它包含了从不同来源收集的实用工具类,旨在帮助开发者提高效率,减少代码重复。下面,我们将深入探讨这个主题,分析其中可能包含的知识点。 首先,`opslabJutil-master....

    Android常用工具类

    在这个"Android常用工具类"中,我们可以看到几个关键的工具类:DateUtils、OkhttpUtils、StringUtils、ToastUtils和LocationUtils。接下来,我们将详细探讨这些工具类的功能和用法。 1. **DateUtils**: DateUtils...

    常用工具类

    在给定的标题"常用工具类"中,我们提到了`StringUtils`、`JDBCUtils`和`ReflectUtils`,这些都是Java开发中非常重要的工具类。下面将分别详细介绍这三个工具类以及它们在实际开发中的应用。 1. **StringUtils**: ...

Global site tag (gtag.js) - Google Analytics