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

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)

时间: 2024-10-13 02:36:22

Java中StringUtils工具类的一些用法实例_java的相关文章

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

  这篇文章主要介绍了Java中StringUtils工具类的一些用法实例,本文着重讲解了isEmpty和isBlank方法的使用,另外也讲解了trim.strip等方法的使用实例,需要的朋友可以参考下 StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果

详解Java中的时区类TimeZone的用法_java

一.TimeZone 简介TimeZone 表示时区偏移量,也可以计算夏令时. 在操作 Date, Calendar等表示日期/时间的对象时,经常会用到TimeZone:因为不同的时区,时间不同. 下面说说TimeZone对象的 2种常用创建方式.1.获取默认的TimeZone对象使用方法: TimeZone tz = TimeZone.getDefault() 2.使用 getTimeZone(String id) 方法获取TimeZone对象使用方法: // 获取 "GMT+08:00&qu

详解Java中使用ImageIO类对图片进行压缩的方法_java

最近做项目需要图片压缩处理,网上找的方法大都使用了 com.sun.image.codec.jpeg.* 这个包中的JPEGImageEncoder类,引入这个包后一直报错,各种google百度,尝试了各种方法,包括手动引jre中的rt.jar,以及在eclipse中把受访问限制的API提示从ERROR改为WARNING,等等,然而这些都是不好使的,因为后来我发现我的java-7-openjdk-amd64中的rt.jar里边根本就没有com.sun.image.*,貌似这个类在java7中已经

Java中使用阻塞队列控制线程集实例_java

队列以一种先进先出的方式管理数据.如果你试图向一个已经满了的阻塞队列中添加一个元素,或是从一个空的阻塞队列中移除一个元素,将导致线程阻塞.在多线程进行合作时,阻塞队列是很有用的工具.工作者线程可以定期的把中间结果存到阻塞队列中.而其他工作者线程把中间结果取出并在将来修改它们.队列会自动平衡负载.如果第一个线程集运行的比第二个慢,则第二个线程集在等待结果时就会阻塞.如果第一个线程集运行的快,那么它将等待第二个线程集赶上来. 下面的程序展示了如何使用阻塞队列来控制线程集.程序在一个目录及它的所有子目

Android开发中日期工具类DateUtil完整实例

本文实例讲述了Android开发中日期工具类DateUtil.分享给大家供大家参考,具体如下: /** * 日期操作工具类. * @Project ERPForAndroid * @Package com.ymerp.android.tools * @author chenlin * @version 1.0 */ @SuppressLint("SimpleDateFormat") public class DateUtil { private static final String

对象-java中的引用和new的用法

问题描述 java中的引用和new的用法 初学java,有些问题很幼稚,还望各位大神能多扶持 首先,说说引用的问题, 我定义了一个A类.其中初始化属性name为A, 接下来: A a = new A://创建一个对象 A a1 = a://这里好像是一个引用,有点不懂,我把他理解为指针, a = new A; // 这是第二个问题,在创建对象的时候,一般不都是类 对象 = new 类吗?为什么这里可以直接new呢,而且看教程上是说又新分配了一个空间,我想问的是只要是new,都是分配存储空间吗,及

java-求解Java中import和package的各种用法

问题描述 求解Java中import和package的各种用法 不同目录下的Java文件,每个文件我都给建立了一个包,在其中一个Java文件中访问另一个的时候,import了另一个包,并且也修改了环境变量,把另一个包所在的目录加了进去,结果编译还是错误,说是找不到那个包,包这块还是挺混乱的,哪位给讲讲,请不吝赐教,能不能很系统全面的给说说 解决方案 java中import,package的用法JAVA 中import和 package的用法java中import,package的用法 解决方案二

java中基于TaskEngine类封装实现定时任务

主要包括如下几个类:   文章标题:java中基于TaskEngine类封装实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10950529 作者: javaboy2012 Email:yanek@163.com qq:    1046011462       1. 核心工具类: TaskEngine   package com.yanek.task; import java.util.*; import java.util.Lin

Android开发之图片切割工具类定义与用法示例

本文实例讲述了Android开发之图片切割工具类定义与用法.分享给大家供大家参考,具体如下: 该工具类比较常见于拼图游戏中使用.这里演示了类基本的定义与使用方法. 图片切割工具类定义: public class ImageSplitter { /** * 将图片切成 , piece *piece * * @param bitmap * @param piece * @return */ public static List<ImagePiece> split(Bitmap bitmap, in