当前位置: 首页 > news >正文

Apache StringUtils:Java字符串处理工具类

简介

在我们的代码中经常需要对字符串判空,截取字符串、转换大小写、分隔字符串、比较字符串、去掉多余空格、拼接字符串、使用正则表达式等等。如果只用 String 类提供的那些方法,我们需要手写大量的额外代码,不然容易出现各种异常。现在有个好消息是:org.apache.commons.lang3包下的StringUtils工具类,给我们提供了非常丰富的选择。在这里插入图片描述

Maven依赖:

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

方法列表和描述

  • IsEmpty/IsBlank - 检查字符串是否包含文本
  • Trim/Strip - 移除字符串的前导和尾随空白
  • Equals/Compare - 以空安全的方式比较两个字符串
  • startsWith - 以空安全的方式检查字符串是否以指定前缀开头
  • endsWith - 以空安全的方式检查字符串是否以指定后缀结尾
  • IndexOf/LastIndexOf/Contains - 空安全的索引检查
  • IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut - 在一组字符串中查找任意字符串的索引
  • ContainsOnly/ContainsNone/ContainsAny - 检查字符串是否只包含/不包含/包含任意一组字符
  • Substring/Left/Right/Mid - 空安全的子字符串提取
  • SubstringBefore/SubstringAfter/SubstringBetween - 相对于其他字符串的子字符串提取
  • Split/Join - 将字符串拆分为子字符串数组,反之亦然
  • Remove/Delete - 移除字符串的部分内容
  • Replace/Overlay - 在字符串中搜索并用另一个字符串替换
  • Chomp/Chop - 移除字符串的最后一部分
  • AppendIfMissing - 如果不存在,将后缀追加到字符串的末尾
  • PrependIfMissing - 如果不存在,将前缀添加到字符串的开头
  • LeftPad/RightPad/Center/Repeat - 填充字符串
  • UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize - 更改字符串的大小写
  • CountMatches - 计算一个字符串在另一个字符串中出现的次数
  • IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable - 检查字符串中的字符
  • DefaultString - 防止空输入字符串
  • Rotate - 旋转(循环移位)字符串
  • Reverse/ReverseDelimited - 反转字符串
  • Abbreviate - 使用省略号或另一个给定的字符串缩写字符串
  • Difference - 比较字符串并报告它们之间的差异
  • LevenshteinDistance - 将一个字符串更改为另一个所需的更改次数

empyt和blank都是判空有什么区别:
" " isEmpty 返回false;isBlank返回true

一些常用的字符串常量:
在这里插入图片描述

使用DEMO

1 判断字符串是否为空或者空白:

import org.apache.commons.lang3.StringUtils;public class StringUtilsDemo {public static void main(String[] args) {String str1 = "Hello, World!";String str2 = "";// 判断字符串是否为空或者空白System.out.println("Is str1 empty or blank? " + StringUtils.isBlank(str1));System.out.println("Is str2 empty or blank? " + StringUtils.isBlank(str2));}
}

2 连接多个字符串:

import org.apache.commons.lang3.StringUtils;public class StringUtilsDemo {public static void main(String[] args) {String[] words = {"Hello", "World", "Java"};// 连接多个字符串String result = StringUtils.join(words, " ");System.out.println("Result: " + result);}
}

截取字符串的前几个字符:

import org.apache.commons.lang3.StringUtils;public class StringUtilsDemo {public static void main(String[] args) {String original = "Apache StringUtils Demo";// 截取字符串的前几个字符String substring = StringUtils.left(original, 10);System.out.println("Substring: " + substring);}
}

4 移除字符串中的空格:

import org.apache.commons.lang3.StringUtils;public class StringUtilsDemo {public static void main(String[] args) {String stringWithSpaces = "   Remove   Spaces   ";// 移除字符串中的空格String result = StringUtils.deleteWhitespace(stringWithSpaces);System.out.println("Result: " + result);}
}

相关文章:

  • openGauss学习笔记-198 openGauss 数据库运维-常见故障定位案例-分析查询效率异常降低的问题
  • 多级缓存架构(二)Caffeine进程缓存
  • javascript的三元运算
  • 【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格
  • openssl3.2 - 官方demo学习 - mac - gmac.c
  • Visual Studio Code 1.67调整文件嵌套、Markdown导航
  • yolov7_Obb环境安装
  • YOLOv8改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (支持检测、分割、关键点检测)
  • 红黑树(RBTree)
  • 如何在 Ubuntu 中更改时区设置
  • 谷歌地图多个maker标记点击显示当前信息弹窗infowindow
  • ardupilot开发 --- 固件定制(OEM) 篇
  • 任务12:使用Hadoop Streaming解压NCDC天气原始数据
  • Resize:最近邻插值、双线性插值、双三次插值
  • 1.环境部署
  • @jsonView过滤属性
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • JavaScript的使用你知道几种?(上)
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Service Worker
  • Swoft 源码剖析 - 代码自动更新机制
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 巧用 TypeScript (一)
  • 入门级的git使用指北
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 2017年360最后一道编程题
  • 阿里云重庆大学大数据训练营落地分享
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • # Java NIO(一)FileChannel
  • #1015 : KMP算法
  • #define,static,const,三种常量的区别
  • #if 1...#endif
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (顺序)容器的好伴侣 --- 容器适配器
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)四层和七层负载均衡的区别
  • .net对接阿里云CSB服务
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .php文件都打不开,打不开php文件怎么办
  • @Data注解的作用
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [04]Web前端进阶—JS伪数组
  • [Android]使用Git将项目提交到GitHub