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

news2024/11/18 3:43:16

简介

在我们的代码中经常需要对字符串判空,截取字符串、转换大小写、分隔字符串、比较字符串、去掉多余空格、拼接字符串、使用正则表达式等等。如果只用 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);
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GL Logger和CANFDLog-OTL-128两款记录仪都是如何实现高效的报文录制的?

GL Logger是Vector推出的记录CAN/CAN FD、LIN、FlexRay和MOST数据通信的工具。以GL2400为例带着大家一步步地实现路试过程中通过整车OBD口进行CAN/CANFD报文的录制。 Step1 设备配置 设备配置即设备录制方式、录制内容、设备休眠唤醒策略等。 ▷ 打开Vector Logger Configurat…

调试ad5245的总结

调试ad5245的总结 这个ad5245是通过IIC与FPGA进行通信的&#xff0c;首先要理解IIC协议。 经验总结&#xff1a; 1、SCL和SDA端的要有上拉电阻&#xff0c;且上拉电阻能正常工作&#xff1b; 2、要往SDA数据线上写三个字节才能调节ad5245的电阻值&#xff0c;第三个字节就是…

html中的flex是什么?——弹性布局

在HTML中&#xff0c;flex是一种布局方式&#xff0c;用于处理容器中的子元素的布局。它是CSS3的一部分&#xff0c;也被称为弹性布局。 通过使用flex布局&#xff0c;可以将容器中的子元素进行灵活的定位和扩展&#xff0c;以适应不同的屏幕尺寸和设备。它提供了一种简单而强…

flink 1.18 sql gateway /sql gateway jdbc

一 sql gateway 注意 之所以直接启动gateway 能知道yarn session 主要还是隐藏的配置文件&#xff0c;但是配置文件可以被覆盖&#xff0c;多个session 保留最新的applicationid 1 安装flink &#xff08;略&#xff09; 2 启动sql-gatway(sql-gateway 通过官网介绍只能运行…

【时光记:2023的心灵旅程】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

tree数据处理

接口获取数据oldArr [{"deptCode": "01","parentCode": "000","sortKey": 4,"deptName": "办公室&#xff08;党委办公室、董事会办公室&#xff09;","children": [{"deptCode":…

九、Qt C++ 毕业设计 数据库相关

《一、QT的前世今生》 《二、QT下载、安装及问题解决(windows系统)》《三、Qt Creator使用》 ​​​ 《四、Qt 的第一个demo-CSDN博客》 《五、带登录窗体的demo》 《六、新建窗体时&#xff0c;几种窗体的区别》 《七、Qt 信号和槽》 《八、Qt C 毕业设计-CSDN博客》 …

从JVM角度对java中引用的理解

学java这么久了&#xff0c;对java引用越来越深刻&#xff0c;好好梳理一下下面三个问题&#xff0c;带着问题进行理解。 什么是引用&#xff1f;引用存放在jvm哪个区域&#xff1f; 引用是一种变量类型。引用类型占四个字节。 变量类型分为基本类型和引用类型。 我们知道jav…

2023年跨国企业如何实现跨境数据传输合规化(上)

一、什么是数据跨境传输&#xff1f; 首先了解一个概念&#xff0c;什么是数据跨境传输&#xff1f; 数据跨境传输简单概括就是指信息通过互联网等网络媒介&#xff0c;在跨国企业之间进行传递和交换的过程。 有一则官方网站关于全球化数字化的数据统计&#xff1a;仅2019 年…

【Web】什么是 XSS 攻击,如何避免?

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Web ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 常见方法&#xff1a; 结语 我的其他博客 前言 在当今数字化时代&#xff0c;网络安全成为信息技术领域中的一项至关重要的任务。X…

视频和音频怎么合并在一起?分享3个轻松合并的实用技巧

视频和音频怎么合并在一起&#xff1f;在数字媒体时代&#xff0c;视频和音频是制作多媒体内容不可或缺的元素。有时我们需要将视频和音频合并在一起&#xff0c;以创建更丰富、更有趣的多媒体内容。那么&#xff0c;如何将视频和音频合并在一起呢&#xff1f;下面将介绍一些实…

NLP论文阅读记录 - 2022 | WOS 用于摘要法律文本的有效深度学习方法

文章目录 前言0、论文摘要一、Introduction1.1目标问题 二.相关工作三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结 前言 Effective deep learning approaches for summarization of legal texts&#xff08;22&#x…

第一个Python程序_获取网页 HTML 信息[Python爬虫学习笔记]

使用 Python 内置的 urllib 库获取网页的 html 信息。注意&#xff0c;urllib 库属于 Python 的标准库模块&#xff0c;无须单独安装&#xff0c;它是 Python 爬虫的常用模块。 获取网页 HTML 信息 1) 获取响应对象 向百度&#xff08;http://www.baidu.com/&#xff09;发起…

计算3种颜色粉刷立方体的所有可能方法

“&#xff08;伯恩赛德引理&#xff09;设G是一个作用在有限集合X上的有限群&#xff0c;令N为轨道的个数&#xff0c;则 其中Fix(x)是被τ固定的x∈X的个数.“ *高等近世代数 Joseph J. Rotman P78 “设G是一个有限群&#xff0c;作用在集合X上。对每个g属于G令X^g表示X中在g…

电力能源监测管理系统,在医院中有哪些作用?

随着经济全球化的发展&#xff0c;节能减排成为当前社会发展必须关注的问题。电力能源监测管理系统&#xff0c;可以分析电力管理能源的现状&#xff0c;并根据现状提出对应的策略&#xff0c;为快速高效建成绿色智能化医院提供有力支撑和技术保障。 医院能源管理现状 1、人力…

linux 网络文件共享服务

存储类型 DAS 直连式存储 SAN 存储区域网络 NAS 网络附近存储 FTP文件传输协议 文件传输协议 FTP 早期的三个应用级协议之一&#xff0c;基于c/s架构 数据传输格式&#xff1a;二进制&#xff08;默认&#xff09;和文本 tcp 21端口&#xff08;权限&#xff0c;…

uniapp 如何使用echarts 以及解决tooltip自定义不生效问题

使用的是echarts-for-wx插件&#xff1b; 正常写法案例&#xff1a;给tooltip数值加个% <template><view><uni-ec-canvas class"uni-ec-canvas"id"uni-ec-canvas"ref"canvas"canvas-id"uni-ec-canvas":ec"ec&quo…

Android-网络基础

http 与 https 的区别&#xff1f;https 是如何工作的&#xff1f; http 是超文本传输协议&#xff0c;而 https 可以简单理解为安全的 http 协议。https 通过在 http 协议下添加了一层 ssl 协议对数据进行加密从而保证了安全。https 的作用主要有两点&#xff1a;建立安全的信…

使用WAF防御网络上的隐蔽威胁之CSRF攻击

在网络安全领域&#xff0c;除了常见的XSS&#xff08;跨站脚本&#xff09;攻击外&#xff0c;CSRF&#xff08;跨站请求伪造&#xff09;攻击也是一种常见且危险的威胁。这种攻击利用用户已经验证的身份在没有用户知情的情况下&#xff0c;执行非授权的操作。了解CSRF攻击的机…

WPF实现右键选定TreeViewItem

在WPF中&#xff0c;TreeView默认情况是不支持右键选定的&#xff0c;也就是说&#xff0c;当右键点击某节点时&#xff0c;是无法选中该节点的。当我们想在TreeViewItem中实现右键菜单时&#xff0c;往往希望在弹出菜单的同时选中该节点&#xff0c;以使得菜单针对选中的节点生…