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

StringUtils.substring\[XX]()字符串截取方法总结

StringUtils.substring[XX]()字符串截取方法总结

StringUtils (Apache Commons Lang 3.12.0 API)

文章目录

  • StringUtils.substring\[XX]()字符串截取方法总结
    • 导入依赖
    • 方法介绍
      • substring(String str, int start)
      • substring(String str, int start, int end)
      • substringAfter(String str, String separator)
      • substringAfterLast(String str, String separator)
      • substringBefore(String str, String separator)
      • substringBeforeLast(String str, String separator)
      • substringBetween(String str, String tag)
      • substringBetween(String str, String open, String close)
      • substringsBetween(String str, String open, String close)

导入依赖

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

方法介绍

substring(String str, int start)

从指定的字符串str获取子字符串

子字符串的起始位置start

  • 如果为正,则从字符串开始获取n个字符
  • 如果为负,则从字符串末尾获取n个字符

假设String str = "abcde";

字符串abcde
正向遍历01234
倒向遍历-5-4-3-2-1
public class SubstringTest {public static void main(String[] args) {String str = "abcde";System.out.println(StringUtils.substring(str, 0));      //"abcde"System.out.println(StringUtils.substring(str, 2));      //"cde"System.out.println(StringUtils.substring(str, -2));     //"de"}
}

substring(String str, int start, int end)

从指定的字符串str获取子字符串

子字符串的起始位置start, 结束位置end

  • 如果为正,则从字符串开始获取字符
  • 如果为负,则从字符串末尾获取字符
  • 如果两者超出字符串大小或start>end,则返回""

假设String str = "abcde";

字符串abcde
正向遍历01234
倒向遍历-5-4-3-2-1
    public static void main(String[] args) {String str = "abcde";System.out.println(StringUtils.substring(str, 1, 3));      //"bc"System.out.println(StringUtils.substring(str, 6, 7));      //""System.out.println(StringUtils.substring(str, -5, -3));    //"ab"}

substringAfter(String str, String separator)

获取第一次出现分隔符separator之后的子字符串,分隔符不会返回。

空字符串null输入将返回空值null

输入以下情况将返回空字符串""

  • 空字符串str=""
  • 分隔符空值separator=null
  • 未找到任何内容
    public static void main(String[] args) {System.out.println(StringUtils.substringAfter("abccde", "c"));      //"cde"System.out.println(StringUtils.substringAfter(null, ""));           //nullSystem.out.println(StringUtils.substringAfter("", "a"));            //""System.out.println(StringUtils.substringAfter("abc", null));        //""System.out.println(StringUtils.substringAfter("abcde", "f"));       //""}

substringAfterLast(String str, String separator)

获取从后往前第一次出现分隔符separator之后的子字符串,分隔符不会返回。

空字符串null输入将返回空值null

输入以下情况将返回空字符串""

  • 空字符串str=""
  • 分隔符空值separator=null
  • 未找到任何内容
    public static void main(String[] args) {System.out.println(StringUtils.substringAfterLast("abccde", "c"));      //"de"System.out.println(StringUtils.substringAfterLast(null, ""));           //nullSystem.out.println(StringUtils.substringAfterLast("", "a"));            //""System.out.println(StringUtils.substringAfterLast("abc", null));        //""System.out.println(StringUtils.substringAfterLast("abcde", "f"));       //""}

substringBefore(String str, String separator)

获取第一次出现分隔符separator之前的子字符串。分隔符不会返回。

空字符串null输入将返回空值null

空字符串""输入将返回空字符串""

如果未找到任何内容,则返回字符串str

    public static void main(String[] args) {System.out.println(StringUtils.substringBefore("abccde", "c"));      //"ab"System.out.println(StringUtils.substringBefore(null, ""));           //nullSystem.out.println(StringUtils.substringBefore("", "a"));            //""System.out.println(StringUtils.substringBefore("abc", null));        //"abc"System.out.println(StringUtils.substringBefore("abcde", "f"));       //"abcde"}

substringBeforeLast(String str, String separator)

获取从后往前第一次出现分隔符separator之前的子字符串。分隔符不会返回。

空字符串null输入将返回空值null

空字符串""输入将返回空字符串""

空分隔符separator=""或空值分隔符separator=null或未找到任何内容,则返回字符串str

    public static void main(String[] args) {System.out.println(StringUtils.substringBeforeLast("abccde", "c"));      //"ab"System.out.println(StringUtils.substringBeforeLast(null, ""));           //nullSystem.out.println(StringUtils.substringBeforeLast("abc", ""));          //"abc"System.out.println(StringUtils.substringBeforeLast("abc", null));        //"abc"System.out.println(StringUtils.substringBeforeLast("abcde", "f"));       //"abcde"}

substringBetween(String str, String tag)

获取嵌套在同一字符串str的两个实例tag之间的字符串。

空输入字符串str=""返回空字符串null,空标记tag=null返回空值null

注意:对字符串从前向后检索,遇到符合条件的子串即返回(样例4)

    public static void main(String[] args) {System.out.println(StringUtils.substringBetween("abcdea", "a"));        //"bcde"System.out.println(StringUtils.substringBetween("abc", ""));            //""System.out.println(StringUtils.substringBetween("", "abc"));            //nullSystem.out.println(StringUtils.substringBetween("fffabcdefff", "ff"));  //"fabcde"}

substringBetween(String str, String open, String close)

获取嵌套在两个字符串之间的字符串。只返回第一个匹配项。

open=nullclose=null返回空值null

open=""close=""返回空字符串""

    public static void main(String[] args) {System.out.println(StringUtils.substringBetween("abcdea", "a", "d")); 				//"bc"System.out.println(StringUtils.substringBetween("", "" ,""));         				//""System.out.println(StringUtils.substringBetween("ffabcdeffhijkff", "ff", "ff"));  	//"abcde"}

substringsBetween(String str, String open, String close)

在字符串中搜索由开始标记open和结束标记close分隔的子字符串,返回数组中所有匹配的子字符串。

    public static void main(String[] args) {String[] strings = StringUtils.substringsBetween("ffabcdeffffhijkff", "ff", "ff");System.out.println(Arrays.toString(strings));		//[abcde, hijk]}

相关文章:

StringUtils.substring\[XX]()字符串截取方法总结

StringUtils.substring[XX]()字符串截取方法总结 StringUtils (Apache Commons Lang 3.12.0 API) 文章目录 StringUtils.substring\[XX]()字符串截取方法总结导入依赖方法介绍substring(String str, int start)substring(String str, int start, int end)substringAfter(String…...

SeaweedFs使用-通过http接口实现文件操作

通过http接口实现文件操作 SeaweedFs可通过filer的http接口/master中的http接口来进行文件上传 1.通过master的接口进行上传文件 通过各种方式进行请求接口&#xff1a;http://localhost:9333/submit, ip和端口号是master服务的信息。此接口通过post请求方式将文件的二进制流…...

成绩管理系统

系列文章 任务28 成绩管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试读入数据浏览全部信息增加学生信息保存数据删除学生信息修改学生…...

【MYSQL】事务的4大属性,对隔离级别的详细讲解

目录 1.原子性和持久性 1.1.手动提交事务 1.2.自动提交事务 1.3.事务的原理&#xff1a; 2.隔离性 1.读未提交&#xff08;Read Uncommitted&#xff09; 2.读提交&#xff08;Read Committed&#xff09; 3.可重复读 4.串行化 3.一致性 4.理解读提交和可重复读的实现…...

如何在宝塔面板后的阿里云服务器运行Flask项目并公网可以访问?

在你的服务器安装宝塔面板 宝塔面板是服务器运维管理系统 使用宝塔前&#xff1a; 手工输入命令安装各类软件&#xff0c;操作起来费时费力并且容易出错&#xff0c;而且需要记住很多Linux的命令&#xff0c;非常复杂。 使用宝塔后&#xff1a; 2分钟装好面板&#xff0c;一键…...

HTTP(九)-- response对象 -- 向页面响应数据

目录 1. 服务器输出字符数据到浏览器 1.1 获取字符输出流 1.2 实例演示:...

音视频windows安装ffmpeg6.0并使用vs调试源码笔记

建立在上一步&#xff0c;vs已经能够正常调试qt项目&#xff0c;可以实现&#xff1a; 1&#xff1a;qt可以使用mvsc &#xff08;使用cdb&#xff09;进行调试。 2&#xff1a;vs已经可以加载qt项目&#xff0c;借助vs进行调试。 本文目标&#xff1a;编译ffmpeg库&#xf…...

Midjourney|文心一格prompt教程[进阶篇]:Midjourney Prompt 高级参数、各版本差异、官方提供常见问题

Midjourney|文心一格prompt教程[进阶篇]&#xff1a;Midjourney Prompt 高级参数、各版本差异、官方提供常见问题 1.Midjourney Prompt 高级参数 Quality 图片质量是另一个我比较常用的属性&#xff0c;首先需要注意这个参数并不影响分辨率&#xff0c;并不改变分辨率&#x…...

什么是Java虚拟机(JVM)?

Java虚拟机&#xff08;Java Virtual Machine&#xff0c;JVM&#xff09;是Java平台的关键组成部分之一。它是一种虚拟的计算机&#xff0c;可以在计算机上运行Java字节码&#xff08;即编译后的Java程序&#xff09;。 JVM具有以下主要功能&#xff1a; 字节码执行&#xff…...

【HISI IC萌新虚拟项目】Package Process Unit模块整体方案·PART3

5. 模块方案说明 5.1CRG 模块方案说明 5.1.1简介 CRG 模块实现复位信号的滤抖功能,可滤除小于100ns的低电平复位毛刺,并对复位信号进行同步化处理。同时,对100MHz的输入时钟信号进行2分频,作为 CPU_IF模块和TEST_CORE模块的工作时钟。 5.1.2接口信号 信号位宽I/O描述...

分布式事务常见解决方案

分布式事务常见解决方案 一、事务介绍 事务是一系列的动作&#xff0c;它们综合在一起才是一个完的工作单元&#xff0c;这些动作必须全部完成&#xff0c;如果有一个失败的话&#xff0c;那么事务就会回滚到最开始的状态&#xff0c;仿佛什么都没发生过一样。 1、单事务概念…...

061:cesium设置棋盘图材质(material-5)

第061个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置棋盘材质,请参考源代码,了解CheckerboardMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共89行)相关API参考:专栏目标…...

【AI Earth试玩】权限配置与openAPI调用工具库

前言 AI earth是阿里达摩院出的遥感云计算平台&#xff0c;我简单体验下来感觉像是GEE的python版本遥感深度学习计算平台&#xff0c;整体体验还是挺不错的&#xff0c;尤其是多分类的结果还是挺惊艳的。 平台提供工具箱和notebook两种模式&#xff0c;工具箱整个交互简单易用…...

Tomcat安装与使用

Tomcat 是HTTP服务器&#xff0c;用于使用HTTP协议。 1、下载Tomcat 下载链接&#xff1a;https://tomcat.apache.org/ 进入官网后&#xff0c;根据自己想要下载的版本进行下载&#xff0c;我这里选择下载的版本是Tomcat 8. 点击选择自己想要下载的对应版本&#xff0c;下载Z…...

大数据课程-学习二十四周总结

6.Hive函数 Hive的函数分为三类&#xff1a; 聚合函数、内置函数&#xff0c;表生成函数&#xff0c;聚合函数之前已经学习过了&#xff0c;接下来学习内置函数和表生成函数. 6.1.Hive的内置函数 6.1.1.数学函数 6.1.1.1. 取整函数: round 语法: round(double a) 返回值: BIG…...

【GPT科技系列】国内开发者调用openAI-API科技方法

1. 前言 openAI上线7个月了&#xff0c;但是随着openAI的约束越来越多&#xff0c;国内开发者想要使用openai的接口实现开发简直就是难上加难。那真的就没有办法了吗&#xff1f;no no no&#xff0c;CF解决一切不开心~ 2.准备工作 我们需要一个国际域名 注册cloudflare账号 …...

基于QGIS的长株潭城市群边界范围融合实战

背景 在面向区域的研究过程中&#xff0c;比如一些研究区域&#xff0c;如果是具体的行政区划&#xff0c;比如具体的某省或者某市或者县&#xff0c;可以直接从国家官方的地理数据中直接下载就可以。但如果并没有直接的空间数据那怎么办呢&#xff1f;比如之前遇到的一个场景&…...

【MySQL联合查询】轻松实现数据关联

1、联合查询 联合查询又称为多表查询&#xff0c;它的基本执行过程就是笛卡尔积 1.1 认识笛卡尔积 那么什么是笛卡尔积呢&#xff1f; 答&#xff1a;笛卡尔积就是将两张表放在一起进行计算&#xff0c;把第一张表的每一行分别取出来和第二张表的每一行进行连接&#xff0c;得到…...

Windows安装Ubuntu双系统

Windows安装Ubuntu双系统 1.下载Ubuntu 16.04&#xff0c;地址https://releases.ubuntu.com/16.04/ 2.下载Rufus&#xff0c;地址https://rufus.ie/zh/ 3.准备U盘&#xff0c;烧录系统 4.磁盘分区 5.重启&#xff0c;按住shift键 本人电脑是联想小新 Windows11系统&#xff0…...

【大数据之Hadoop】三十四、Hadoop综合调优之小文件优化方法

1 Hadoop小文件弊端 HDFS上每个文件都要在NameNode上创建对应的元数据&#xff0c;这个元数据的大小约为150byte&#xff0c;这样当小文件比较多的时候&#xff0c;就会产生很多的元数据文件&#xff0c;一方面会大量占用NameNode的内存空间&#xff0c;另一方面就是元数据文件…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...