stringUtils详细解释

StringUtils 是 Apache Commons Lang 库中的一个实用工具类,提供了一系列静态方法来处理字符串。这些方法可以帮助你更方便地进行字符串的空值检查、拼接、截取、替换等操作。下面详细解释 StringUtils 的常用方法及其在代码中的应用。

导入 StringUtils

首先,你需要在项目中引入 Apache Commons Lang 库。如果你使用 Maven,可以在 pom.xml 文件中添加以下依赖:

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

常用方法

以下是 StringUtils 中一些常用的静态方法及其功能:

  1. isEmpty(String str)

    • 作用:判断字符串是否为 null 或者长度为 0。
    • 示例
      boolean isEmpty = StringUtils.isEmpty(null); // true
      boolean isEmpty2 = StringUtils.isEmpty(""); // true
      boolean isEmpty3 = StringUtils.isEmpty("abc"); // false
      
  2. isNotEmpty(String str)

    • 作用:判断字符串是否不为 null 且长度不为 0。
    • 示例
      boolean isNotEmpty = StringUtils.isNotEmpty(null); // false
      boolean isNotEmpty2 = StringUtils.isNotEmpty(""); // false
      boolean isNotEmpty3 = StringUtils.isNotEmpty("abc"); // true
      
  3. isBlank(String str)

    • 作用:判断字符串是否为 null 或者只包含空白字符。
    • 示例
      boolean isBlank = StringUtils.isBlank(null); // true
      boolean isBlank2 = StringUtils.isBlank(""); // true
      boolean isBlank3 = StringUtils.isBlank("   "); // true
      boolean isBlank4 = StringUtils.isBlank("abc"); // false
      
  4. isNotBlank(String str)

    • 作用:判断字符串是否不为 null 且不只包含空白字符。
    • 示例
      boolean isNotBlank = StringUtils.isNotBlank(null); // false
      boolean isNotBlank2 = StringUtils.isNotBlank(""); // false
      boolean isNotBlank3 = StringUtils.isNotBlank("   "); // false
      boolean isNotBlank4 = StringUtils.isNotBlank("abc"); // true
      
  5. trim(String str)

    • 作用:去除字符串两端的空白字符。
    • 示例
      String trimmed = StringUtils.trim("  abc  "); // "abc"
      
  6. trimToNull(String str)

    • 作用:去除字符串两端的空白字符,如果结果为空字符串,则返回 null
    • 示例
      String trimmed = StringUtils.trimToNull("  abc  "); // "abc"
      String trimmed2 = StringUtils.trimToNull("   "); // null
      
  7. trimToEmpty(String str)

    • 作用:去除字符串两端的空白字符,如果结果为 null,则返回空字符串。
    • 示例
      String trimmed = StringUtils.trimToEmpty("  abc  "); // "abc"
      String trimmed2 = StringUtils.trimToEmpty(null); // ""
      
  8. join(Iterable<?> iterable, String separator)

    • 作用:将集合中的元素连接成一个字符串,元素之间用指定的分隔符分隔。
    • 示例
      List<String> list = Arrays.asList("a", "b", "c");
      String joined = StringUtils.join(list, ","); // "a,b,c"
      
  9. split(String str, String separator)

    • 作用:将字符串按照指定的分隔符拆分成一个数组。
    • 示例
      String[] split = StringUtils.split("a,b,c", ","); // ["a", "b", "c"]
      
  10. replace(String str, String searchStr, String replacement)

    • 作用:将字符串中的指定子字符串替换为另一个字符串。
    • 示例
      String replaced = StringUtils.replace("abcabc", "a", "A"); // "AbcAbc"
      

示例代码

假设我们在一个控制器方法中使用 StringUtils 来处理字符串:

import com.itheima.reggie.utils.R;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;@RestController
public class EmployeeController {@PutMapping("/update")public R<String> update(HttpServletRequest request, @RequestBody Employee employee) {log.info(employee.toString());long id = Thread.currentThread().getId();log.info("线程id为:{}", id);Long empId = (Long) request.getSession().getAttribute("employee");if (empId == null) {return R.error("用户未登录");}// 检查用户名是否为空if (StringUtils.isBlank(employee.getName())) {return R.error("用户名不能为空");}// 去除电话号码两端的空白字符employee.setPhone(StringUtils.trimToEmpty(employee.getPhone()));employee.setUpdateTime(LocalDateTime.now());employee.setUpdateUser(empId);employeeService.updateById(employee);return R.success("员工信息修改成功");}
}

详细解释

  1. 导入 StringUtils

    • import org.apache.commons.lang3.StringUtils;:导入 StringUtils 类。
  2. 检查用户名是否为空

    • if (StringUtils.isBlank(employee.getName())) {
      • 作用:使用 StringUtils.isBlank 方法检查 employee 对象的 name 属性是否为空或只包含空白字符。
      • 返回值:如果 name 为空或只包含空白字符,返回一个错误响应。
  3. 去除电话号码两端的空白字符

    • employee.setPhone(StringUtils.trimToEmpty(employee.getPhone()));
      • 作用:使用 StringUtils.trimToEmpty 方法去除 employee 对象的 phone 属性两端的空白字符。如果 phonenull,则返回空字符串。
      • 返回值:将处理后的电话号码设置回 employee 对象。

总结

StringUtils 是一个非常有用的工具类,提供了许多静态方法来处理字符串。通过使用 StringUtils,你可以更方便地进行字符串的空值检查、拼接、截取、替换等操作,从而使代码更加简洁和易读。

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

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

相关文章

Java 网络编程(一)—— UDP数据报套接字编程

概念 在网络编程中主要的对象有两个&#xff1a;客户端和服务器。客户端是提供请求的&#xff0c;归用户使用&#xff0c;发送的请求会被服务器接收&#xff0c;服务器根据请求做出响应&#xff0c;然后再将响应的数据包返回给客户端。 作为程序员&#xff0c;我们主要关心应…

【MySQL】数据库表连接简明解释

未经许可,不得转载。 文章目录 表连接表连接的类型内连接与外连接结合 WHERE 条件交叉连接(cross join)表连接 在关系型数据库中,建模是数据组织的核心难点。数据库建模需要将数据关系理清,构建出适合存储和查询的结构。 所谓“模型”包括实体(entity) 和关系(relati…

SpringBoot(八)使用AES库对字符串进行加密解密

博客的文章详情页面传递参数是使用AES加密过得&#xff0c;如下图所示&#xff1a; 这个AES加密是通用的加密方式&#xff0c;使用同一套算法&#xff0c;前端和后端都可以对加密之后的字符串进行加密解密操作。 目前线上正在使用的是前端javascript进行加密操作&#xff0c;将…

拦截器实现http请求访问本地图片

本文来记录下拦截器实现http请求访问本地图片 文章目录 概述代码实现本文小结 概述 如下图&#xff0c;本机(服务器)存储的图片想要在浏览器上通过Url地址访问&#xff1a; 浏览器直接访问 代码实现 烂机器实现文件真实地址和物理地址之间的映射 Slf4j Configuration public cl…

gpu-V100显卡相关知识

一、定义 RuntimeError: FlashAttention only supports Ampere GPUs or newer.torch attention注意力接口学习V100 架构是什么&#xff1f; 二、实现 RuntimeError: FlashAttention only supports Ampere GPUs or newer. 报错原因分析&#xff1a; GPU机器配置低&#xff0c;…

C++初阶——list

一、什么是list list是一个可以在序列的任意位置进行插入和删除的容器&#xff0c;并且可以进行双向迭代。list的底层是一个双向链表&#xff0c;双向链表可以将它们包含的每个元素存储在不同且不相关的存储位置。通过将每个元素与前一个元素的链接和后一个元素的链接关联起来&…

《DiffusionDet: Diffusion Model for Object Detection》ICCV2023

摘要 本文提出了一种新的框架DiffusionDet&#xff0c;它将目标检测任务表述为从带噪声的边界框到目标边界框的去噪扩散过程&#xff08;如图一所示&#xff09;。在训练阶段&#xff0c;目标边界框逐渐扩散到随机分布&#xff0c;模型学习逆转这一加噪过程。在推理阶段&#…

词嵌入方法(Word Embedding)

词嵌入方法&#xff08;Word Embedding&#xff09; Word Embedding是NLP中的一种技术&#xff0c;通过将单词映射到一个空间向量来表示每个单词 ✨️常见的词嵌入方法&#xff1a; &#x1f31f;Word2Vec&#xff1a;由谷歌提出的方法&#xff0c;分为CBOW&#xff08;conti…

Mit6.S081-实验环境搭建

Mit6.S081-实验环境搭建 注&#xff1a;大家每次做一些操作的时候觉得不太保险就先把虚拟机克隆一份 前言 qemu&#xff08;quick emulator&#xff09;&#xff1a;这是一个模拟硬件环境的软件&#xff0c;利用它可以运行我们编译好的操作系统。 准备一个Linux系统&#xf…

qt QVideoWidget详解

1. 概述 QVideoWidget是Qt框架中用于视频播放的控件。它继承自QWidget&#xff0c;并提供了与QMediaPlayer等多媒体播放类集成的功能。QVideoWidget可以嵌入到Qt应用程序的用户界面中&#xff0c;用于显示视频内容。它支持多种视频格式&#xff0c;并提供了基本的视频播放控制…

10款PDF合并工具的使用体验与推荐!!!

在如今的信息洪流中&#xff0c;我们几乎每个人都被淹没在大量的数字文档之中。无论是学生、教师还是职场人士&#xff0c;我们都需要高效地管理和处理这些文档。而PDF文件&#xff0c;凭借其跨平台的稳定性和通用性&#xff0c;成了最常用的文档格式之一。我们经常需要处理、编…

【AI大模型】ELMo模型介绍:深度理解语言模型的嵌入艺术

学习目标 了解什么是ELMo.掌握ELMo的架构.掌握ELMo的预训练任务.了解ELMo的效果和成绩.了解ELMo的优缺点. 目录 &#x1f354; ELMo简介 &#x1f354; ELMo的架构 2.1 总体架构 2.2 Embedding模块 2.3 两部分的双层LSTM模块 2.4 词向量表征模块 &#x1f354; ELMo的预…

Gurobi学术版+Anaconda安装步骤

注意&#xff1a;在anaconda虚拟环境中安装gurobi库是不需要在本地下载gurobi这个软件的&#xff0c;只需要conda install gurobi即可&#xff0c;或者指定版本的安装conda install -c gurobi gurobi11.0.3。 step0&#xff1a;安装ananconda step1&#xff1a;获得学术许可&a…

【C++】类与对象的基础概念

目录&#xff1a; 一、inline 二、类与对象基础 &#xff08;一&#xff09;类的定义 &#xff08;二&#xff09;访问限定符 &#xff08;三&#xff09;类域 &#xff08;四&#xff09;实例化概念 正文 一、inline 在C语言的学习过程中&#xff0c;大家肯定了解过宏这个概…

解决表格出现滚动条样式错乱问题

自定义表格出现滚动条时&#xff0c;会因为宽度不对等导致样式错乱&#xff1b; 解决思路&#xff1a; 监听表格数据的变化&#xff0c;当表格出现滚动条时&#xff0c;再调用更新宽度的方法updateWidth&#xff0c;去改变表格头部的宽度&#xff0c;最终保持表格头部和内容对…

天才的懈怠 : 平衡二叉树

力扣110&#xff1a;平衡二叉树 描述&#xff1a; 二叉树的每一个节点的左右子树高度差不超过1&#xff0c;即为平衡二叉树 递归 树&#xff1a;还是用递归&#xff0c;从最深的节点开始向上判断&#xff0c;保证每个节点的左右子树高度差不大于1&#xff0c;大于1的用 -1 做标…

使用@react-three/fiber,@mkkellogg/gaussian-splats-3d加载.splat,.ply,.ksplat文件

前言 假设您正在现有项目中集成这些包&#xff0c;而该项目的构建工具为 Webpack 或 Vite。同时&#xff0c;您对 Three.js 和 React 有一定的了解。如果您发现有任何错误或有更好的方法&#xff0c;请随时留言。 安装 npm install three types/three react-three/fiber rea…

MySQL:CRUD

MySQL表的增删改查&#xff08;操作的是表中的记录&#xff09; CRUD(增删改查) C-Create新增R-Retrieve检查&#xff0c;查询U-Update更新D-Delete删除 新增&#xff08;Create&#xff09; 语法&#xff1a; 单行数据全列插入 insert into 表名[字段一&#xff0c;字段…

DeBiFormer实战:使用DeBiFormer实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

小面馆叫号取餐流程 佳易王面馆米线店点餐叫号管理系统操作教程

一、概述 【软件资源文件下载在文章最后】 小面馆叫号取餐流程 佳易王面馆米线店点餐叫号管理系统操作教程 点餐软件以其实用的功能和简便的操作&#xff0c;为小型餐饮店提供了高效的点餐管理解决方案&#xff0c;提高了工作效率和服务质量 ‌点餐管理‌&#xff1a;支持电…