当前位置: 首页 > 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]}
http://www.lryc.cn/news/69865.html

相关文章:

  • SeaweedFs使用-通过http接口实现文件操作
  • 成绩管理系统
  • 【MYSQL】事务的4大属性,对隔离级别的详细讲解
  • 如何在宝塔面板后的阿里云服务器运行Flask项目并公网可以访问?
  • HTTP(九)-- response对象 -- 向页面响应数据
  • 音视频windows安装ffmpeg6.0并使用vs调试源码笔记
  • Midjourney|文心一格prompt教程[进阶篇]:Midjourney Prompt 高级参数、各版本差异、官方提供常见问题
  • 什么是Java虚拟机(JVM)?
  • 【HISI IC萌新虚拟项目】Package Process Unit模块整体方案·PART3
  • 分布式事务常见解决方案
  • 061:cesium设置棋盘图材质(material-5)
  • 【AI Earth试玩】权限配置与openAPI调用工具库
  • Tomcat安装与使用
  • 大数据课程-学习二十四周总结
  • 【GPT科技系列】国内开发者调用openAI-API科技方法
  • 基于QGIS的长株潭城市群边界范围融合实战
  • 【MySQL联合查询】轻松实现数据关联
  • Windows安装Ubuntu双系统
  • 【大数据之Hadoop】三十四、Hadoop综合调优之小文件优化方法
  • 周赛 Round#3 题解
  • 详解HTTPS加密过程
  • 聚观早报 | ChatGPT登顶美区iOS免费榜;库克不满苹果首款MR设备
  • position:sticky-粘性吸附布局
  • 【MySQL】-【数据库的设计规范】
  • 全面解析缓存应用经典问题
  • Java版本企业电子招采系统源码——信息数智化招采系统
  • Rust每日一练(Leetday0005) 罗马数字、公共前缀、三数之和
  • 【告别校园,迎接未来】
  • SaaS系统用户权限设计
  • 我们为什么还要学习Altium Designer?