`
xuyuanshuaaa
  • 浏览: 388248 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

StringUtils的实用方法

 
阅读更多
tringUtils  方法的操作对象是 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("", "", *) = 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 代码  收藏代码

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



结果为:
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 请参见官方网站

通常实用StringUtils要导入 org.apache.commons.lang.jar包,由于apache对StringUtils包进行了一定补充
分享到:
评论

相关推荐

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

    主要为大家详细介绍了java自定义封装StringUtils常用工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Eclipse-StringUtils:Eclipse插件-开源

    字符串实用程序-允许您在Eclipse编辑器中格式化SQL查询。... 如何操作:1)将光标设置在字符串的边界内2)字符串实用程序→格式化SQL或字符串实用程序→提取字符串URL:https://github.com/kbss/StringUtils_plugin

    StringUtils:包含在String上定义的操作的实用程序

    StringUtils 包含在String上定义的操作的实用程序。 字符串操作也包括在内。

    string-utils:一些基本的字符串实用程序

    字符串工具概要包含一些用于格式化和操作字符串的基本实用程序: StringUtils.format 的工作方式类似于 .Net 中的 String.Format。代码示例 s1 = StringUtils.format("The {0} is against the {1}.", "chair", "wall...

    StringUtils:该库在 std 中实现了许多常用但本机不支持的功能

    字符串实用程序该库在std::string 中实现了许多常用但本机不支持的函数,如Split 、 Join 、 Trim 、 Compact 、 ReplaceAll 、 ToLower 、 ToUpper 、 Repeat 、 ReadFile 、 WriteFile等。测试make test Passing: ...

    stringUtils:通过 golang 移植 Apache commons lang

    字符串实用程序 通过 golang 移植 Apache commons lang 也可以看看

    solidity-stringutils:用于Solidity的基本字符串实用程序

    用于Solidity的String&Slice实用程序库 概述 该库中的功能主要使用称为“切片”的抽象来实现。 切片代表字符串的一部分-从整个字符串到单个字符,甚至根本没有任何字符(长度为0的切片)。 由于切片只需指定偏移量...

    commons-util:一些有用的Java实用程序

    公用程序 Java的一些有用的公共资源。 包括: ArrayUtils:Java的arrary []的一些有用的数组实用程序,其中一些喜欢Python... StringUtils:一些String实用程序。 LogUtils:一些日志实用程序。 StreamUtils:一些流

    zend-stdlib, Zend中的Stdlib组件.zip

    zend-stdlib, Zend中的Stdlib组件 zend ZendStdlib 是一组组件,用于实现针对不同作用域的通用实用程序类,例如:array 实用程序功能;通用消息系统;字符串包装器;等等.在 https://github.com/zendframew

    commons-lang-2.4.jar

    commons-lang-2.4.jar其中最实用的方法是StringUtils.isNotBlank(xxx)判断字符串是否为空或null

    Maven.Quiz3-1

    基本面VowelUtils StringUtils PigLatinGenerator困难数组SquareArrayAnalyzer TicTacToe WaveGenerator困难面向对象LabStatus RockPaperScissors 馆藏Lab Student 仿制药ArrayUtility困难第1部分-基本原理元音实用...

    commonutils:Java实用程序

    很多逻辑写过,为了减少重复性工作,将平时经常用到的一些方法封装成工具类 基本包下: ArrayUtils分布式操作工具类 MapSortUtils map排序工具类 CollectionUtils集合操作 DocumentUtils文档操作 RegexUtils正则...

    java-library:实用程序类的依赖关系有助于开发

    Java库 依赖实用程序类以帮助Java开发,该存储库对文档和utils进行了多次更改,以重构或更改这些API的样式 模组 共享 Java开发的实用程序类,例如DateUtil,...Bungeecord开发的实用程序类,例如StringUtils

    capitalize-utils:一个小的Java类来大写字符串,例如CSS中的文本转换

    大写实用程序一个小的Java类来大写字符串,例如CSS中的文本转换恩zh-cn,仅如何使用介绍在与的对话中,他说在StringUtils中没有注释或方法可以使“每个单词的首字母大写”,即大写。 正如我来自前端一样,这是一件...

    goutils:GoUtils是Apache Commons的一些字符串操作库的Go实现。 这是一个开源项目,旨在为Go用户提供实用程序功能,以各种方式操作字符串

    GoUtils GoUtils为用户提供了实用程序功能,可以多种方式操作字符串。 它是Java Apache Commons的某些字符串操作库的Go实现。 GoUtils包括以下Java Apache Commons类: WordUtils RandomStringUtils StringUtils...

    HerosPHP(PHP MVC开发框架) v3.0.1.zip

    2、框架简单实用,傻瓜式开发,学习门槛低 3、在保持约定大于配置的原则下又保持着很好的扩展性 4、代码风格简洁漂亮,程序精简高效,但是注释详细,适合新手学习. HerosPHP功能 完整的MVC支持 强大的数据库...

    commons-lang3-3.1 API

    除了6个Exception类和2个已经deprecated的数字类之外,commons.lang包共包含了17个实用的类: ArrayUtils – 用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等; BitField – 用于操作位元,...

    MyUtils:MyUtils,各种测试代码

    common.io,lan3,beanutils,configuration,stringutils,dateutils.. apache poi 用于操作 xls 文件 其他一些测试 fasejson 和 jacson 和 dom4j slf4j 和 logback zxing for qrcode 用于压缩和解压缩的 snappy ##...

    AndroidUtils:Android实用程序

    AndroidUtils AndroidUtils 1、httpUtils 基于Okhttp的 网络请求,文件上传等功能; 2、preferenceutil,StringUtils,Viewutils等常用工具类 3、commonAdapter、viewHolder通用Adapter

Global site tag (gtag.js) - Google Analytics