StringUtils

isEmpty(String str) 是否为空,空格字符为false

isNotEmpty(String str) 是否为非空,空格字符为true

isBlank(String str) 是否为空,空格字符为true

isNotBlank(String str) 是否为非空,空格字符为false

trim(String str)去除字符串两端的控制符,空字符串、null 返回 null

trimToEmpty(String str) 去除字符串两端的控制符,空字符串、null 返回""

stripToNull(String str) 去除字符串两端的空白符,空字符串、null 返回null

stripToEmpty(String str) 去除字符串两端的空白符,空字符串、null 返回""

strip(String str, String stripChars) 去掉str两端的在stripChars中的字符

StringUtils.strip(“000000134_76539000”,“0”)=“134_76539”

stripStart (String str,String stripChars) 去除str 前端在stripChars中的字符

stripEnd (String str,String stripChars) 去除str 后端在stripChars中的字符

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

indexOf(String str,char searchChar) 返回searchChar 在字符串中第一次出现的位置,如果没找到则返回 -1,如果str 为null 或者 “”,也返回-1

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

contains(String str,char searchChar) str中是否包含字符searchChar,str为null 或者 searchChar为null,返回false 。

StringUtils.contains("", “”) = true

StringUtils.contains(“dfg”, “”) = true

containsIgnoreCase(String str,String searchStr) str中是否包含字符searchChar,不区分大小写

int indexOfAny(String str, char[] searchChars) 找出字符数组searchChars中的字符第一次出现在字符串str中的位置。 如果字符数组中的字符都不在字符串中,则返回-1 ,如果字符串为null或"",则返回-1

subString(String str,int start) 从start 开始,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 “” 则返回其本身

subStringBefore(String str,String separator) 得到字符串separator第一次出现前的子串。不包含那个字符,如果str 为null 或者 “” 则返回其本身。

subStringAfter(String str,String separator) 得到字符串separator第一次出现后的子串,不包含那个字符,如果 str 为null,或者"",则返回其本身

subString(String str,int start,int end) 同上

left(String str,int len) 得到字符串str从左边数len长度的子串,如果str 为null 或者 “”,则返回其本身,如果len小于0,则返回""

right(String str,int len)得到字符串str从右边数len长度的子串

mid(String str,int pos,int len) 得到字符串str从pos开始len长度的子串,pos小于0,则设为0。

split(String str) 把字符串拆分成一个字符串数组,用空白符 作为分隔符,字符串为null 返回null,字符串为"",返回空数组{}

split(String str,char c) 按照 char c 拆分字符串

join(Object[] arrey)把数组中的元素连接成一个字符串返回

join(Object[] arrey,char c) 把数组中的元素拼接成一个字符串返回,把分隔符 c 也带上

deleteWhitespace(String str) 删除字符串中的所有空白符,包括转义字符

removeStart(String str,String remove) 如果字符串str是以remove开始,则去掉这个开始,然后返回,否则返回原来的串

removeEnd(String str,String remove) 如果字符串str是以字符串remove结尾,则去掉这个结尾,然后返回,否则返回原来的串。

remove(String str,char remove) 去掉字符串str中所有包含remove的部分,然后返回

replace(String str,String reql,String with) 在字符串text中用with代替repl,替换所有

overlay(String str,String new,int start,int end) 用字符串new 覆盖字符串str从start 到 end 之间的串

chop(String str) 去掉字符串的最后一个字符,比如/r/n

repeat(String str,int repart) 重复字符串repeat次

rightPad(String str,int size,String padStr) size长度的字符串,如果不够用padStr补齐

leftPad(String str,int size,String padStr)同上

center(String str,int size)产生一个字符串,长度等于size,str位于新串的中心

swapCase(String str) 字符串中的大写转小写,小写转换为大写

replaceChars(String str,char old,char new) 在字符串中 new 字符代替 old 字符

replaceChars(String str, String searchChars, String replaceChars) 这个有点特别,先看下面三个例子

StringUtils.replaceChars(“asssdf”,“s”,“yyy”)) = “ayyydf”

StringUtils.replaceChars(“asdf”,“sd”,“y”)) = “ayf”

StringUtils.replaceChars(“assssddddf”,“sd”,“y”))= “ayyyyf”

解释:为什么会出现上面这样的结果呢?原来这个置换规则是这样的,他是拿searchChars的index,去replaceChars找相应的index然后替换掉,怎么说呢?比如说第一个例子 s 的index 是0,找到yyy相对应的index为0的字符是y。第二个例子 ‘s’ 的index是0,‘d’的index是1, 字符’s’ 可以找到对应index为0的 ‘y’,d就找不到index为’1’的的字符了,所以就直接过滤掉了

public Response updateTemplate(String msg) {
        logger.info("updateTemplate request:{}", msg);
        Result<Void> result = new Result<>();
        HashMap<String, String> hashMap = JSONObject.parseObject(msg, HashMap.class);
        String id = hashMap.get("id");
        String userId = hashMap.get("userId");
        String templateName = hashMap.get("templateName");
        String attribute = String.valueOf(hashMap.get("attribute"));
            //1.判断id是空
            if (StringUtils.isBlank(id)) {
                //如果id 为空 attribute有数据就新增
                CustomTemplateDO customTemplateDO = new CustomTemplateDO();
                //如果id 是空 attribute有数据就新增
                if (StringUtils.isNotBlank(attribute)) {
                    customTemplateDO.setUserId(userId);
                    customTemplateDO.setAttribute(attribute);
                    customTemplateDO.setTemplateName(templateName);
                    customTemplateService.saveTe(customTemplateDO);
                    result.setSuccess(Boolean.TRUE);
                    result.setErrorMessage("新增模板成功!");
                   return Response.ok().entity(JSON.toJSONString(result)).build();
                }else{
                    return Response.ok().entity("新增模板失败!").build();
                }
            }
            //1.判断id不是空
            if(StringUtils.isNotBlank(id)){
                CustomTemplateDO customTemplateDO = new CustomTemplateDO();
                //如果有id attribute有数据就修改
                if (StringUtils.isNotBlank(attribute)) {
                    customTemplateDO.setId(Long.valueOf(id));
                    customTemplateDO.setAttribute(attribute);
                     customTemplateService.updateTemp(customTemplateDO);
                    result.setSuccess(Boolean.TRUE);
                    result.setErrorMessage("修改模板成功!!!");
                }else{
                    return Response.ok().entity("修改模板失败!").build();
                }
            }
            return Response.ok().entity(JSON.toJSONString(result)).build();
    }

StringUtils 的使用 :
除了StringUtils.isBlank() StringUtils.isNotBlank () 还有很多好用的方法
————————————————
版权声明:本文为优快云博主「songyh19」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/songyh19/article/details/112212308

### StringUtils 类的功能概述 `StringUtils` 是 Apache Commons Library 中的一部分,属于 `org.apache.commons.lang3` 包下的工具类[^2]。该类主要用于简化字符串操作,提供了许多静态方法来处理常见的字符串问题。这些方法能够帮助开发者更高效地完成字符串的判断、转换和格式化等工作。 以下是 `StringUtils` 的主要功能分类及其描述: #### 1. 字符串判空 `StringUtils` 提供了一系列用于检测字符串是否为空或者仅包含空白字符的方法。例如: - `isEmpty(String str)`:如果字符串为 null 或长度为零,则返回 true。 - `isNotEmpty(String str)`:与 isEmpty 方法相反,当字符串不为空时返回 true。 - `isBlank(String str)`:如果字符串为 null 或者只包含空白字符(如空格),则返回 true。 - `isNotBlank(String str)`:与 isBlank 方法相反,当字符串既不是 null 又含有非空白字符时返回 true。 ```java System.out.println(StringUtils.isEmpty(null)); // 输出: true System.out.println(StringUtils.isBlank("")); // 输出: true System.out.println(StringUtils.isNotBlank("abc")); // 输出: true ``` #### 2. 去除多余字符 此类方法可以帮助去除字符串两端或内部多余的空白字符及其他指定字符。 - `trim(String str)`:移除字符串首尾的空白字符。 - `strip(String str, String stripChars)`:删除字符串开头和结尾处由参数定义的一组字符。 - `removeStart(String str, String remove)` 和 `removeEnd(String str, String remove)`:分别去掉字符串前缀或后缀部分匹配的内容。 ```java String result = StringUtils.strip(" Hello World! ", " H!"); // 结果:"ello World" ``` #### 3. 大小写转换 通过调用以下函数实现大小写的统一管理。 - `upperCase(String str)` - `lowerCase(String str)` ```java System.out.println(StringUtils.upperCase("hello")); // HELLO System.out.println(StringUtils.lowerCase("WORLD")); // world ``` #### 4. 子串查找与替换 支持灵活定位子序列位置以及批量替换单词等功能。 - `contains(CharSequence seq, CharSequence searchSeq)` - `replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)` ```java boolean foundA = StringUtils.contains("ABCDEF", 'A'); // true String replacedText = StringUtils.replaceEachRepeatedly( "a_b_c_", new String[]{"_"}, new String[]{"/"}); // a/b/c/ ``` #### 5. 随机生成器 利用随机数种子创建固定长度的新密码或者其他形式的数据片段。 - `RandomStringUtils.random(int count)` - `RandomStringUtils.randomAlphabetic(int count)` ```java String randomStr = RandomStringUtils.random(8); System.out.println(randomStr.length()); // 8 ``` --- ### 使用场景举例 假设我们需要开发一款应用程序,在其中验证用户输入邮箱地址的有效性并清理数据。我们可以借助于 `StringUtils` 来快速构建逻辑框架如下所示: ```java public boolean isValidEmail(String email){ if (StringUtils.isBlank(email)) { return false; } String trimmedEmail = StringUtils.trim(email); int atIndex = trimmedEmail.indexOf("@"); ... } ``` 上述代码展示了如何运用 `StringUtils.isBlank()` 判断字段是否存在有效值;再经过去掉冗余空间之后进一步分析结构特性等等。 --- ### 总结 综上所述,Apache Commons Lang 库内的 `StringUtils` 已成为众多 Java 开发人员日常工作中不可或缺的好帮手之一。凭借其丰富的预设算法集合,极大地减少了重复编码量的同时提高了程序可读性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值