实际项目中字符串对象的应用场景(StringUtils工具类)

本文介绍了Apache Commons Lang中的StringUtils工具类在实际项目中的应用场景,包括字符串的非空验证、截取和替换。重点讲解了isEmpty、isNotEmpty、isBlank、isNotBlank等方法的使用,并探讨了字符串匹配的AC多模式匹配算法。
摘要由CSDN通过智能技术生成

目录

一、前言

二.应用场景

1.非空验证

(1)利用public static boolean isEmpty(String str)判断

(2)利用public static boolean isNotEmpty(String str)判断

(3)利用public static boolean isBlank(String str)判断 

(4)利用public static boolean isNotBlank(String str)判断

(5)利用public static boolean isAnyEmpty(String [] strs)

2.字符串截取

3.字符串替换

三、关于字符串匹配(AC多模式匹配算法)

1.此题来自于LeetCode的一道讨论题


一、前言

JDK 提供了StringUtils工具类,StringUtils 的操作对象是 Java.lang.String 类型的对象。要使用StringUtils类,首先需要导入下面这个架包:

import org.apache.commons.lang3.StringUtils;

如果是在maven项目中,则需要添加下面这个依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.9</version>
</dependency>

二.应用场景

1.非空验证

* 由于方法有相通之处,这里不进行一一列举。


(1)利用public static boolean isEmpty(String str)判断

该方法为空的标准是 str==null 或 str.length()==0,这里注意:如果是自定义判断条件时,str==null需要置前,不然会报下面这个空指针异常:

Exception in thread "main" java.lang.NullPointerException

 这是因为在没有对对象判空的前提下,去获取对象的长度,此时这一个对象是null,且只有其名,没有实值内容,也没分配内存,当你要去取他的长度,自然会报空指针。

实例如下:

public class test {
    public static void main(String[] args) {
        String s1="";
        String s2="  ";
        String s3 = null;
        String s4="测试";
        System.out.println(StringUtils.isEmpty(s1)==true?"s1字符串对象非空验证:为空":"s1字符串对象非空验证:不为空");
        System.out.println(StringUtils.isEmpty(s2)==true?"s2字符串对象非空验证:为空":"s2字符串对象非空验证:不为空");
        System.out.println(StringUtils.isEmpty(s3)==true?"s3字符串对象非空验证:为空":"s3字符串对象非空验证:不为空");
        System.out.println(StringUtils.isEmpty(s4)==true?"s4字符串对象非空验证:为空":"s4字符串对象非空验证:不为空");
    }
}
 
 
输出:
s1字符串对象非空验证:为空
s2字符串对象非空验证:不为空
s3字符串对象非空验证:为空
s4字符串对象非空验证:不为空

(2)利用public static boolean isNotEmpty(String str)判断

该方法为空的标准同样是 str==null 或 str.length()==0,不过其写法是直接调用isEmpty(String str)方法,然后对其结果作非运算,即!isEmpty(str)。

实例如下:

public class test {
    public static void main(String[] args) {
        String s1="";
        String s2="  ";
        String s3 = null;
        String s4="测试";
        System.out.println(StringUtils.isNotEmpty(s1)==false?"s1字符串对象非空验证:为空":"s1字符串对象非空验证:不为空");
        System.out.println(StringUtils.isNotEmpty(s2)==false?"s2字符串对象非空验证:为空":"s2字符串对象非空验证:不为空");
        System.out.println(StringUtils.isNotEmpty(s3)==false?"s3字符串对象非空验证:为空":"s3字符串对象非空验证:不为空");
        System.out.println(StringUtils.isNotEmpty(s4)==false?"s4字符串对象非空验证:为空":"s4字符串对象非空验证:不为空");
    }
}
 
输出:
s1字符串对象非空验证:为空
s2字符串对象非空验证:不为空
s3字符串对象非空验证:为空
s4字符串对象非空验证:不为空

(3)利用public static boolean isBlank(String str)判断 

有些项目场景下,要求标注空字符串 "     "也为空。这时就会用到 isBlank(String str)方法,该方法可以校验一个String类型的对象是否为 null,是否为""(长度为0),是否为空字符串(空格)。对于最后判断是否为空字符串,其实它是调用了boolean isWhitespace(char ch)方法,原理便是在方法内部进行一个for循环,循环条件为字符串的长度,如果字符(char)为空白字符(空白符包含:空格、tab 键、换行符)则返回 true;否则返回 false。

实例如下:

public class test {
    public static void main(String[] args) {
        String s1="";
        String s2="  ";
        String s3 = null;
        String s4="测试";
        System.out.println(StringUtils.isBlank(s1)==true?"s1字符串对象非空验证:为空":"s1字符串对象非空验证:不为空");
        System.out.println(StringUtils.isBlank(s2)==true?"s2字符串对象非空验证:为空":"s2字符串对象非空验证:不为空");
        System.out.println(StringUtils.isBlank(s3)==true?"s3字符串对象非空验证:为空":"s3字符串对象非空验证:不为空");
        System.out.println(StringUtils.isBlank(s4)==true?"s4字符串对象非空验证:为空":"s4字符串对象非空验证:不为空");
    }
}
 
输出:
s1字符串对象非空验证:为空
s2字符串对象非空验证:为空
s3字符串对象非空验证:为空
s4字符串对象非空验证:不为空
 
 
针对空字符串判断的实例:
public class Test {
    public static void main(String arg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值