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)

时间: 2024-08-11 15:24:05

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

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

StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码).  除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.

详解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

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

详解java中的Collections类_java

一般来说课本上的数据结构包括数组.单链表.堆栈.树.图.我这里所指的数据结构,是一个怎么表示一个对象的问题,有时候,单单一个变量声明不堪大用,比如int,String,double甚至一维数组.二维数组无法完全表达你要表达的东西,而定义一个类Class有太过麻烦,这时候,你可以考虑一下用Java中的Collections类.使用Collections类,必须在文件头声明import java.util.*; 一.动态.有序.可变大小的一维数组Vector与ArrayList  Collectio

java-请教JAVA中的Calendar类的一个问题

问题描述 请教JAVA中的Calendar类的一个问题 请问大神,我画红框的部分就是我出问题的地方,为什么我set好的Date值是5月,而下面输出后是0月?搞得下面的add方法也是从0开始加3 解决方案 把SimpleDateFormat中的m改为大写的M,改为"yyyy年MM月dd日".而且要注意,获取到的Month是用0-11表示的,如果要表示真实的日期,要记得+1. 解决方案二: yyyy年M月d日 看看