常用的字符串截取、分隔

往期目录

常用循环遍历简述及应用

目录

一、截取

1.方法简述

1.1 相关概念

1.2 用法

1.2.1 substring() 方法(常用)

1.2.2 StringUtils 相关方法

2.依赖

3.综合应用

3.1 截取指定长度或内容的字符串

3.2 截取指定字符(串)之前的内容

3.3 截取指定字符(串)之后的内容

3.4 截取两个指定字符(串)之间的内容

二、分隔

1.方法简述

2.应用

一、截取

1.方法简述

1.1 相关概念

  • String.indexOf( )方法:可返回某个指定字符值在字符串中首次出现的位置(索引)。
  • String.lastIndexOf( )方法:用于获取指定字符在字符串中最后一次出现的位置(索引)。 如果字符串中不存在子字符串,则返回-1 。

  • String.substriing( )方法:用于截取字符串中特定部分。

  • StringUtils.substringBetween( )方法:取得两字符串之间的字符串;

  • StringUtils.substringAfter( )方法:取得首次出现指定字符串后的字符串;

  • StringUtils.substringBefore( )方法:取得首次出现指定字符串之前的字符串;

  • StringUtils.substringBeforeLast( )方法:取得最后一次出现指定字符串之前的字符串;

  • StringUtils.substringAfterLast( )方法:取得最后一次出现指定字符串之后的字符串.

1.2 用法

1.2.1 substring() 方法(常用)
  1. substring(int beginIndex):返回从起始位置(索引)到字符串的末尾;
  2. substring(int beginIndex,int endIndex):返回从起始位置(索引)到结束位置(索引)之间的字符串(不包含结束位置)(忽略造会成越界异常)。
1.2.2 StringUtils 相关方法
  1. StringUtils.substringAfter(String testString, String separator):返回testString字符串里separator字符串之后的内容;(其他方法结构同理)

  2. StringUtils.substringBetween(String testString, String fromString, String toString )  :返回testString字符串里fromString字符串到toString字符串之间的内容。

2.依赖

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

3.综合应用

3.1 截取指定长度或内容的字符串

        String sub="hello,world!";
        //截取world
        String a = sub.substring(6, 11);
        System.out.println(a);//输出:world
        //截取前5位
        String b = sub.substring(0, 5);
        System.out.println(b);//输出:hello
        //截取最后6位
        String c = sub.substring(sub.length()-6);
        System.out.println(c);//输出:world!   

注:

  • 截取字符串是从左向右进行截取的,如果开始下标大于结束下标就截取不到内容了
  • 如果结束下标大于字符串长度,会造成越界异常

3.2 截取指定字符(串)之前的内容

        String str = "12/3.html/ab.html/3";
        //截取指定符号 "/" 首次出现 之前的内容
        String c = str.substring(0, str.indexOf("/"));
        System.out.println(c);//输出:12
        //截取指定符号 "/" 最后一次出现 之前的内容
        String d = str.substring(0, str.lastIndexOf("/"));
        System.out.println(d);//输出:12/3.html/ab.html
        //截取指定字符串 ".html" 首次出现 之前的内容
        String e = StringUtils.substringBefore(str, ".html");
        System.out.println(e);//输出:12/3
        //截取指定字符串 ".html" 最后一次出现 之前的内容
        String f = StringUtils.substringBeforeLast(str, ".html");
        System.out.println(f);//输出:12/3.html/ab

3.3 截取指定字符(串)之后的内容

        String str = "12/3.html/ab.html/3";
        //截取指定符号 "/" 首次出现 之后的内容
        String a = str.substring(str.indexOf("/")+1);
        System.out.println(a);//输出:3.html/ab.html/3
        //截取指定符号 "/" 最后一次出现 之后的内容
        String b = str.substring(str.lastIndexOf("/") + 1);
        System.out.println(b);//输出:3
        //截取指定字符串 ".html/" 首次出现 之后的内容
        String c = StringUtils.substringAfter(str, ".html/");    
        System.out.println(c);//输出:ab.html/3
        //截取指定字符串 ".html/" 最后一次出现 之后的内容
        String d = StringUtils.substringAfterLast(str, ".html/");    
        System.out.println(d);//输出:3

3.4 截取两个指定字符(串)之间的内容

        String str = "12/3.html/ab.html";
        //截取指定符号"/"首次出现和最后一次出现之间的内容
        String a = str.substring(str.indexOf("/") + 1, str.lastIndexOf("/"));
        System.out.println(a);//输出:3-html
        //截取两个指定符号"/"(最后一次出现)和"b"(首次出现)之间的内容
        String b = str.substring(str.lastIndexOf("/") + 1, str.indexOf("b"));
        System.out.println(b);//输出:a
        //截取两个指定符号串(首次出现)"/"和".html"之间的内容   
        String c= StringUtils.substringBetween(str, "/", ".html");
        System.out.println(c);//输出:3

注:

  • 使用StringUtils.substringBetween()截取字符串时,如果指定的字符串有多个,都会按首次出现的字符串来实现截取。

二、分隔

1.方法简述

  • regex:正则表达式分隔符。

  • limit:分割的份数。

  • String.split(String regex,int limit)方法:以指定分隔符分隔,返回一个数组。

2.应用

        String str = "12/3.html/ab.html";
        //以"/"分隔
        String[] split = str.split("/");
        System.out.println(Arrays.asList(split));//输出:[12, 3.html, ab.html]
        //以"/"分隔,分隔成2份
        String[] split1 = str.split("/", 2);
        System.out.println(Arrays.asList(split1));//输出:[12, 3.html/ab.html]
        //以"/"分隔,分隔成3份,并获取第二个元素   
        String s = str.split("/", 3)[1];
        System.out.println(s);//输出:3.html
        //以"/"分隔,并遍历
        for (String s1 : str.split("/")) {
            System.out.println(s1);
        }

  • 43
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值