热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Java中StringUtils工具类的一些用法实例

这篇文章主要介绍了Java中StringUtils工具类的一些用法实例,本文着重讲解了isEmpty和isBlank方法的使用,另外也讲解了trim、strip等方法的使用实例,需要的朋友可以参考下

StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。 

除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx()

下面分别对一些常用方法做简要介绍: 

StringUtils类 在 org.apache.commons.lang.StringUtils包下
String isEmpty(String str) 和 isNotEmpty(String str)

代码如下:

System.out.println(StringUtils.isEmpty(null));             // true
System.out.println(StringUtils.isEmpty(""));               // true
System.out.println(StringUtils.isEmpty("  "));             // false  注意:这里的isEmpty并没有做空格处理  
System.out.println(StringUtils.isEmpty(" \t \n \f \r "));  // false
System.out.println(StringUtils.isEmpty(" \b "));           // false
System.out.println(StringUtils.isEmpty("X-rapido"));       // false
System.out.println(StringUtils.isEmpty(" X "));            // false

代码如下:

System.out.println(StringUtils.isNotEmpty(null));              // false
System.out.println(StringUtils.isNotEmpty(""));                // false
System.out.println(StringUtils.isNotEmpty("  "));              // true  注意:这里的isNotEmpty并没有做空格处理  
System.out.println(StringUtils.isNotEmpty(" \t \n \f \r "));   // true
System.out.println(StringUtils.isNotEmpty(" \b "));            // true
System.out.println(StringUtils.isNotEmpty("X-rapido"));        // true
System.out.println(StringUtils.isNotEmpty(" X "));             // true

String isBlank(String str) 和 isNotBlank(String str)

包含去空格

代码如下:

System.out.println(StringUtils.isBlank(null));            // true
System.out.println(StringUtils.isBlank(""));              // true
System.out.println(StringUtils.isBlank("  "));            // true  
System.out.println(StringUtils.isBlank(" \t \n \f \r ")); // true
System.out.println(StringUtils.isBlank(" \b "));          // false
System.out.println(StringUtils.isBlank("X-rapido"));      // false
System.out.println(StringUtils.isBlank(" X "));           // false

代码如下:

System.out.println(StringUtils.isNotBlank(null));            // false
System.out.println(StringUtils.isNotBlank(""));              // false
System.out.println(StringUtils.isNotBlank("  "));            // false  
System.out.println(StringUtils.isNotBlank(" \t \n \f \r ")); // false
System.out.println(StringUtils.isNotBlank(" \b "));          // true
System.out.println(StringUtils.isNotBlank("X-rapido"));      // true
System.out.println(StringUtils.isNotBlank(" X "));           // true

String trim(String str) 和 trimToNull(String str) 和 trimToEmpty(String str)  

代码如下:

System.out.println(StringUtils.trim(null));             // null
System.out.println(StringUtils.trim(""));               // ""
System.out.println(StringUtils.trim("  "));             // ""  
System.out.println(StringUtils.trim(" \t \n \f \r "));  // ""
System.out.println(StringUtils.trim(" \b "));           // ""
System.out.println(StringUtils.trim("X-rapido"));       // "X-rapido"
System.out.println(StringUtils.trim(" X "));            // "X"

代码如下:

System.out.println(StringUtils.trimToNull(null));             // null
System.out.println(StringUtils.trimToNull(""));               // null
System.out.println(StringUtils.trimToNull("  "));             // null 
System.out.println(StringUtils.trimToNull(" \t \n \f \r "));  // null
System.out.println(StringUtils.trimToNull(" \b "));           // null
System.out.println(StringUtils.trimToNull("X-rapido"));       // "X-rapido"
System.out.println(StringUtils.trimToNull(" X "));            // "X"

代码如下:

System.out.println(StringUtils.trimToEmpty(null));          // ""
System.out.println(StringUtils.trimToEmpty(""));    // ""
System.out.println(StringUtils.trimToEmpty("  "));          // ""
System.out.println(StringUtils.trimToEmpty(" \t \n \f \r "));     // ""
System.out.println(StringUtils.trimToEmpty(" \b "));     // ""
System.out.println(StringUtils.trimToEmpty(" \bsss "));    // sss
System.out.println(StringUtils.trimToEmpty("X-rapido"));   // "X-rapido"
System.out.println(StringUtils.trimToEmpty(" X "));      // "X"

String strip(String str) 和 stripToNull(String str) 和 stripToEmpty(String str)

代码如下:

System.out.println(StringUtils.strip(null));            // null
System.out.println(StringUtils.strip(""));      // ""
System.out.println(StringUtils.strip("  "));            // ""
System.out.println(StringUtils.strip(" \t \n \f \r "));     // ""
System.out.println(StringUtils.strip(" \b "));       // ""
System.out.println(StringUtils.strip(" \bsss "));      // sss
System.out.println(StringUtils.strip("X-rapido"));     // "X-rapido"
System.out.println(StringUtils.strip(" X "));        // "X"

代码如下:

System.out.println(StringUtils.stripToNull(null));            // null
System.out.println(StringUtils.stripToNull(""));      // null
System.out.println(StringUtils.stripToNull("  "));            // null
System.out.println(StringUtils.stripToNull(" \t \n \f \r "));       // null
System.out.println(StringUtils.stripToNull(" \b "));       // ""
System.out.println(StringUtils.stripToNull(" \bsss "));      // sss
System.out.println(StringUtils.stripToNull("X-rapido"));     // "X-rapido"
System.out.println(StringUtils.stripToNull(" X "));        // "X"

代码如下:

System.out.println(StringUtils.stripToEmpty(null));            // ""
System.out.println(StringUtils.stripToEmpty(""));      // ""
System.out.println(StringUtils.stripToEmpty("  "));            // ""
System.out.println(StringUtils.stripToEmpty(" \t \n \f \r "));      // ""
System.out.println(StringUtils.stripToEmpty(" \b "));       // ""
System.out.println(StringUtils.stripToEmpty(" \bsss "));      // sss
System.out.println(StringUtils.stripToEmpty("X-rapido"));     // "X-rapido"
System.out.println(StringUtils.stripToEmpty(" X "));        // "X"

String strip(String str, String stripChars)
去掉 str 两端的在 stripChars 中的字符。如果 str 为 null 或等于"" ,则返回它本身,如果 stripChars 为null 或"" ,则返回 strip(String str) 。

String stripStart(String str, String stripChars) 
和11相似,去掉 str 前端的在 stripChars 中的字符。

String stripEnd(String str, String stripChars) 
和11相似,去掉 str 末端的在 stripChars 中的字符。

String[] stripAll(String[] strs) 
对字符串数组中的每个字符串进行 strip(String str) ,然后返回。  如果 strs 为 null 或 strs 长度为0,则返回 strs 本身。

String[] stripAll(String[] strs, String stripChars)
对字符串数组中的每个字符串进行 strip(String str, String stripChars) ,然后返回。如果 strs 为 null 或 strs 长度为0,则返回 strs 本身

boolean equals(String str1, String str2)  
 比较两个字符串是否相等,如果两个均为空则也认为相等。

boolean equalsIgnoreCase(String str1, String str2)
比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。

int indexOf(String str, char searchChar)
返回字符 searchChar 在字符串 str 中第一次出现的位置。如果 searchChar 没有在 str 中出现则返回-1,如果 str 为 null 或 "" ,则也返回-1  

int indexOf(String str, char searchChar, int startPos)
返回字符 searchChar 从 startPos 开始在字符串 str 中第一次出现的位置。如果从 startPos 开始 searchChar 没有在 str 中出现则返回-1,如果 str 为null 或 "" ,则也返回-1

int indexOf(String str, String searchStr)
返回字符串 searchStr 在字符串 str 中第一次出现的位置。如果 str 为 null 或 searchStr 为 null 则返回-1,如果 searchStr 为 "" ,且 str 为不为null ,则返回0, 如果 searchStr 不在 str 中,则返回-1

int ordinalIndexOf(String str, String searchStr, int ordinal)
返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。如果 str=null 或 searchStr=null 或 ordinal<=0 则返回-1

代码如下:

System.out.println(StringUtils.ordinalIndexOf(null, "a", 1));       // -1
System.out.println(StringUtils.ordinalIndexOf("a", null, 1));       // -1
System.out.println(StringUtils.ordinalIndexOf("", "", 1));       // 0
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "a", 1));  // 0
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "a", 2));  // 1
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "b", 1));  // 2
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "b", 2));  // 5
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "ab", 1)); // 1
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "ab", 2)); // 4
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "bc", 1)); // -1
System.out.println(StringUtils.ordinalIndexOf("aabaabaa", "", 1));   // 0
System.out.println(StringUtils.ordinalIndexOf(" aabaabaa ", "", 2)); // 0

int indexOf(String str, String searchStr, int startPos)
返回字符串 searchStr 从 startPos 开始在字符串 str 中第一次出现的位置。

代码如下:

System.out.println(StringUtils.indexOf(null, "a", 1));        // -1
System.out.println(StringUtils.indexOf("a", null, 1));        // -1
System.out.println(StringUtils.indexOf("", "", 1));        // 0
System.out.println(StringUtils.indexOf("aabaabaa", "a", 1));  // 1
System.out.println(StringUtils.indexOf("aabaabaa", "a", 2));  // 3
System.out.println(StringUtils.indexOf("aabaabaa", "b", 1));  // 2
System.out.println(StringUtils.indexOf("aabaabaa", "b", 2));  // 2
System.out.println(StringUtils.indexOf("aabaabaa", "ab", 1)); // 4
System.out.println(StringUtils.indexOf("aabaabaa", "ab", 2)); // 1
System.out.println(StringUtils.indexOf("aabaabaa", "bc", 1)); // -1
System.out.println(StringUtils.indexOf("aabaabaa", "", 1));   // 1
System.out.println(StringUtils.indexOf(" aabaabaa ", "", 2)); // 2

int lastIndexOf(String str, char searchChar) 
基本原理同int indexOf(String str, char searchChar)

int lastIndexOf(String str, char searchChar, int startPos)
基本原理同int indexOf(String str, char searchChar, int startPos)

int lastIndexOf(String str, String searchStr)
基本原理同int indexOf(String str, String searchStr)

int lastIndexOf(String str, String searchStr, int startPos)
基本原理同int indexOf(String str, String searchStr, int startPos)


推荐阅读
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
author-avatar
BB_KYLE
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有