当前位置: 首页 > 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;另一方面就是元数据文件…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...