详细分析Java中的StringUtils工具类(org.springframework.util.StringUtils)

目录

  • 前言
  • 1. 基本知识
  • 2. 常用API方法
  • 3. 扩展类

前言

常用的工具类有很多,这是其中一个,了解基本的API可以帮助我们更好的开发

1. 基本知识

org.springframework.util.StringUtils 是 Spring Framework 中的一个实用工具类,用于执行各种字符串相关的操作。

StringUtils 旨在提供方便、简化的字符串处理方法,以支持开发人员在 Spring 应用程序中更轻松地处理字符串。包含了一系列静态方法,涵盖了一些常见的字符串操作,例如判空、判长度、连接、删除空白字符等。

这些方法旨在提高代码的可读性、简洁性和可维护性。

对于这个官方的类,本身源码中的方法比较简单,此处就不过多分析源码,而是分析怎么使用这个工具类

在这里插入图片描述

2. 常用API方法

  1. isEmpty(CharSequence str):boolean
    检查字符串是否为 null 或空字符串
StringUtils.isEmpty(null);           // true
StringUtils.isEmpty("");             // true
StringUtils.isEmpty("  ");           // false
StringUtils.isEmpty("not empty");    // false
  1. hasLength(CharSequence str):boolean
    检查字符串是否有长度(非 null 且长度大于 0)
StringUtils.hasLength(null);         // false
StringUtils.hasLength("");           // false
StringUtils.hasLength("  ");         // true
StringUtils.hasLength("not empty");  // true
  1. hasText(CharSequence str):boolean
    检查字符串是否有文本内容(非 null 且至少包含一个非空白字符)
StringUtils.hasText(null);           // false
StringUtils.hasText("");             // false
StringUtils.hasText("  ");           // false
StringUtils.hasText("not empty");    // true
  1. collectionToCommaDelimitedString(Collection<?> collection):String
    将集合中的元素连接成逗号分隔的字符串
List<String> list = Arrays.asList("a", "b", "c");
StringUtils.collectionToCommaDelimitedString(list);  // "a,b,c"
  1. trimAllWhitespace(String str):String
    删除字符串中的所有空白字符
StringUtils.trimAllWhitespace("  a b c  ");    // "abc"
  1. capitalize(String str):String
    将字符串的第一个字符转换为大写
StringUtils.capitalize("spring");    // "Spring"
  1. uncapitalize(String str):String
    将字符串的第一个字符转换为小写
StringUtils.uncapitalize("Spring");    // "spring"
  1. replace(String inString, String oldPattern, String newPattern):String
    替换字符串中的指定旧模式为新模式
StringUtils.replace("Hello World", "World", "Java");   // "Hello Java"
  1. startsWithIgnoreCase(String str, String prefix):boolean
    检查字符串是否以指定的前缀开头,不区分大小写
StringUtils.startsWithIgnoreCase("Hello World", "hello");   // true
StringUtils.startsWithIgnoreCase("Hello World", "Java");    // false
  1. endsWithIgnoreCase(String str, String suffix):boolean
    检查字符串是否以指定的后缀结尾,不区分大小写
StringUtils.endsWithIgnoreCase("Hello World", "WORLD");   // true
StringUtils.endsWithIgnoreCase("Hello World", "Java");    // false
  1. substringMatch(CharSequence str, int start, CharSequence substring):boolean
    检查字符串从指定位置开始是否匹配给定的子串
StringUtils.substringMatch("abcdef", 2, "cd");   // true
StringUtils.substringMatch("abcdef", 2, "ce");   // false
  1. countOccurrencesOf(String str, String sub):int
    计算字符串中指定子串的出现次数
StringUtils.countOccurrencesOf("ababab", "ab");   // 3
  1. delete(String inString, String pattern):String
    删除字符串中的指定模式
StringUtils.delete("Hello World", "o");   // "Hell Wrld"
  1. deleteAny(String inString, String charsToDelete):String
    删除字符串中的指定字符
StringUtils.deleteAny("Hello World", "aeiou");   // "Hll Wrld"
  1. quote(String str):String
    在字符串两端添加双引号
StringUtils.quote("example");   // "\"example\""

这只是 StringUtils 类中一些常见方法的示例,该类还提供了其他有用的方法值得你去探索!!

3. 扩展类

一般会继承该工具类,实现自我的一些扩展类,由于扩展类比较长,此处放在了github上:StringUtils-

其中第一个扩展类依赖包为:

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

第二个扩展类为:org.springframework.util.StringUtils

截图如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/245400.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对于gzip的了解

gzip基本操作原理&#xff1a;通过消除文件中的冗余信息&#xff0c;使用哈夫曼编码等算法&#xff0c;将文件体积压缩到最小。这种数据压缩方式在网络传输中发挥了巨大作用&#xff0c;减小了传输数据的大小&#xff0c;从而提高了网页加载速度。 静态资源 Vue Vue CLl修改v…

计算机网络-奈氏准则和香农定理(码间串扰 二者区别)

文章目录 失真失真的一种现象-码间串扰奈氏准则&#xff08;奈溃斯特定理&#xff09;例题 香农定理例题 奈氏和香农 失真 就是指与原来的不一样了 两种情况 前三个是正相关&#xff0c;最后一个是负相关 码元传输速率越快&#xff0c;失真程度越严重的原因可能包括以下几点…

如何使用Stable Diffusion的ReActor换脸插件

ReActor插件是从roop插件分叉而来的一个更轻便、安装更简单的换脸插件。操作简单&#xff0c;非常容易上手&#xff0c;下面我们就介绍一下&#xff0c;如何将ReActor作为stable diffusion的插件进行安装和使用。 一&#xff1a;安装ReActor插件 项目地址&#xff1a;https:/…

[MQ]常用的mq产品图形管理web界面或客户端

一、MQ介绍 1.1 定义 MQ全称为Message Queue&#xff0c;消息队列是应用程序和应用程序之间的通信方法。 如果非要用一个定义来概括只能是抽象出来一些概念&#xff0c;概括为跨服务之间传递信息的软件。 1.2 MQ产品 较为成熟的MQ产品&#xff1a;IBMMQ&#xff08;IBM We…

【Web前端实操15】利用Grid布局完成九宫格

相关知识点&#xff1a; 创建多列 column-count 属性指定了需要分割的列数 列与列之间的间隙 column-gap 属性指定了列与列间的间隙 列边框 column-rule-style 属性指定了列与列间的边框样式 column-rule-width 属性指定了两列的边框厚度 column-rule-color 属性指定了…

element el-date-picker type=“datetimerange“

刚写完结果需求变更了。封装的时间组件重新做。结合eacharts 。 直接上代码了 日期选择组件封装 <template><section class"warning-container"><header class"query-head"><el-form :inline"true" class"query-form…

c#算法(10)——求点到直线的距离

前言 在上位机软件开发领域,特别是机器视觉领域,经常会遇到尺寸测量的场景,比如让我们求一个点到一条直线的距离,我们已知了直线上的两个点的坐标,然后又已知了直线外的一个点的坐标,那么如何求出该直线外的一点到直线的距离呢?本文就是来讲解如何求点到直线的距离的,…

构建未来学堂:在线教育系统开发技术实践

在当今数字化时代&#xff0c;在线教育系统的开发越发显得至关重要。本文将带你深入了解在线教育系统的开发&#xff0c;涉及到关键的技术实践和代码示例。我们将采用现代化技术栈&#xff0c;为未来学堂的搭建提供实用的指南。 技术栈选择 在开始实际的开发之前&#xff0c…

Deepin基本环境查看(四)【硬盘/分区、文件系统、硬连接/软连接】

Linux操作系统(Deepin、Ubuntu&#xff09;操作系统中&#xff0c;硬盘分区的管理与Windows操作系统不同&#xff1b; 在Linux系统中维护着一个统一的文件目录体系&#xff0c;而硬盘和分区是以资源的形式由操作系统挂接和调度&#xff1b;此外Linux系统中连接&#xff08;硬连…

three.js中Meshline库的使用

three.js中Meshline的使用 库的地址为什么要使用MeshLine,three.js内置的线不好用吗?MeshLine入门MeshLine的深入思考样条曲线一个问题 库的地址 https://github.com/spite/THREE.MeshLine?tabreadme-ov-file 为什么要使用MeshLine,three.js内置的线不好用吗? 确实不好用,…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-Tag标签管理实现

锋哥原创的SpringbootLayui python222网站实战&#xff1a; python222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火…

研发日记,Matlab/Simulink避坑指南(四)——transpose()转置函数Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南&#xff08;一&#xff09;——Data Store Memory模块执行时序Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(二)——非对称数据溢出Bug》 见《…

五、flowable操作、查询相关

1、依赖 <dependency><groupId>com.ikaiyong.score</groupId><artifactId>score-spring-boot-starter-flowable</artifactId></dependency> 2、流程部署相关 如下建立对应文件和文件夹 2.1 流程部署 /*** 部署流程* param name*/GetMapp…

免费的 UI 设计资源网站 Top 8

今日与大家分享8个优秀的免费 UI 设计资源网站。这些网站的资源包括免费设计材料站、设计工具、字体和其他网站&#xff0c;尤其是一些材料站。它们是免费下载的&#xff0c;材料的风格目前很流行&#xff0c;适合不同的项目。非常适合平面设计WEB/UI设计师收藏&#xff0c;接下…

Cesium数据加载

文章目录 0.引言1.影像加载1.1Bing地图1.2天地图1.3ArcGIS在线地图1.4高德地图1.5OSM影像1.6MapBox影像 2.OGC地图服务2.1WMS2.2WMTS2.3TMS 3.GeoJSON数据加载4.KML数据加载5.TIFF数据加载6.点云数据加载7.地形数据加载7.1在线地形数据加载7.2本地地形数据加载 8.倾斜摄影模型数…

如何使用docker实现越权漏洞-webug靶场搭建(超详解)

越权漏洞-webug靶场搭建 1.打开docker systemctl start docker 2.查找webug docker search webug 3.拉取docker.io/area39/webug 镜像 docker pull docker.io/area39/webug 4.查看镜像 docker images 5.创建容器 docker run -d -p 8080:80 --name webug docker.io/area39/we…

STM32实现软件IIC协议操作OLED显示屏(1)

时间记录&#xff1a;2024/1/25 一、IIC协议介绍 &#xff08;1&#xff09;协议介绍 IIC&#xff08;又称I2C&#xff0c;Inter-Integrated Circuit&#xff09;&#xff0c;即集成电路总线&#xff0c;是一种两线式串行总线&#xff0c;由PHILIPS公司开发&#xff0c;用…

FinBert模型:金融领域的预训练模型

文章目录 模型及预训练方式模型结构训练语料预训练方式 下游任务实验结果实验一&#xff1a;金融短讯类型分类实验任务数据集实验结果 实验二&#xff1a;金融短讯行业分类实验任务数据集实验结果 实验三&#xff1a;金融情绪分类实验任务数据集实验结果 实验四&#xff1a;金融…

认识数学建模

文章目录 1 什么是数学建模2 数学建模的比赛形式3 参加数学建模的好处4 数学建模的流程5 数学建模成员分工6 数学建模常用软件7 数学建模竞赛7.1 美国大学生数学建模竞赛7.2 MathorCup高校数学建模挑战赛7.3 华中杯大学生数学建模挑战赛7.4 认证杯数学建模网络挑战赛7.5 华东杯…

简化java代码:mapstruct + 策略模式

目录 目的 准备 注意 相同类型-属性名不同 实体类 映射 使用 验证-查看实现类 测试 不同类型(策略模式) 实体类 映射 工具类 使用&#xff1a;对象拷贝 验证-查看实现类 测试 使用&#xff1a;集合拷贝 测试 策略模式说明 准备-依赖 目的 简化 BeanUtils.…