Java如何实现截取字符串

简介: Java中实现截取字符串的几种方式

0 写在前面

在实际工作中有一些地方需要用到截取字符串的方法,所以在此记录下截取字符串的几种方法。
.substring()
StringUtils.substring()
split()+正则表达式

1 .substring()

这个是比较常用的一个方法。
此方法有两种形式:

substring(int beginIndex); //提取从索引位置开始至结尾处的字符串部分
substring(int beginIndex,int endIndex); //提取beginIndex开始到endIndex的字符串部分

实例代码:

        String str = "你好,Java练习生";
        //substring(int beginIndex);
        String substring1 = str.substring(3);

        //substring(int beginIndex,int endIndex);
        String substring2 = str.substring(3, 7);

        System.out.println(substring1);//Java练习生
        System.out.println(substring2);//Java

需要注意的是:计数从0开始,如果超过了字符串长度则会报错:

java.lang.StringIndexOutOfBoundsException: String index out of range: 

计算位置示意图
在这里插入图片描述

2 split()+正则表达式

不常用,不过在某些特定场合特别好用。
格式:字符串.split("指定分隔符");--返回的是一个数组
举例(以英文逗号为分隔符):

        String str = "good,good,study,day,day,up";
        String[] split = str.split(",");

        for (String s:
             split) {
            System.out.println(s);
        }

在这里插入图片描述

3 StringUtils.substring()

需要在导入StringUtils的工具类。结合了很多方法。
因为每个人用的工具类不同所以只记录一种。
maven导入:

        <dependency>
            <groupId>com.lispcast</groupId>
            <artifactId>org.apache.commons.lang</artifactId>
            <version>2.5.0</version>
        </dependency>
  • String substring(String str,int start):避免异常地从指定的String获取一个子字符串。
  • String substring(String str,int start, int end):可避免异常地从指定的String获取一个子字符串。
  • String substringAfter(String str,String separator):在第一次出现分隔符后获取子字符串。
  • String substringAfterLast(String str,String separator):在最后一次出现分隔符之后获取子字符串。
  • String substringBefore(String str,String separator):在第一次出现分隔符之前获取子字符串。
  • String substringBeforeLast(String str,String separator):在最后一次出现分隔符之前获取子字符串。
  • String substringBetween(String str,String tag):获取嵌套在同一String的两个实例之间的String。
  • String substringBetween(String str, String open, String close):获取嵌套在两个字符串之间的字符串。

测试:


        String str = "大家好,我是练习两年半的个人练习生,cxk";

        //- String substring(String str,int start):避免异常地从指定的String获取一个子字符串。
        String substring1 = StringUtils.substring(str, 4);
        
        //- String substring(String str,int start, int end):可避免异常地从指定的String获取一个子字符串。
        String substring2 = StringUtils.substring(str, 4, 7);
        
        //- String substringAfter(String str,String separator):在第一次出现分隔符后获取子字符串。
        String substringAfter = StringUtils.substringAfter(str, ",");
        
        //- String substringAfterLast(String str,String separator):在最后一次出现分隔符之后获取子字符串。
        String substringAfterLast = StringUtils.substringAfterLast(str, ",");
        
        //- String substringBefore(String str,String separator):在第一次出现分隔符之前获取子字符串。
        String substringBefore = StringUtils.substringBefore(str, ",");
        
        //- String substringBeforeLast(String str,String separator):在最后一次出现分隔符之前获取子字符串。
        String substringBeforeLast = StringUtils.substringBeforeLast(str, ",");
        
        //- String substringBetween(String str,String tag):获取嵌套在同一String的两个实例之间的String。
        String substringBetween1 = StringUtils.substringBetween(str, ",");
        
        // - String  substringBetween(String str, String open, String close):获取嵌套在两个字符串之间的字符串。
        String substringBetween2 = StringUtils.substringBetween(str, "好", "的");

        System.out.println(substring1);
        System.out.println(substring2);
        System.out.println(substringAfter);
        System.out.println(substringAfterLast);
        System.out.println(substringBefore);
        System.out.println(substringBeforeLast);
        System.out.println(substringBetween1);
        System.out.println(substringBetween2);


        

在这里插入图片描述

4 写在最后

注意:substring() 方法是按字符截取,而不是按字节截取。
工具类没什么神奇的,都是编写好的方法直接拿来用的,省事,也可以自行尝试编写工具类。

相关文章
|
2月前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
335 108
|
4月前
|
SQL JSON Java
告别拼接噩梦:Java文本块让多行字符串更优雅
告别拼接噩梦:Java文本块让多行字符串更优雅
506 82
|
4月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
312 14
|
8月前
|
存储 缓存 安全
Java 字符串详解
本文介绍了 Java 中的三种字符串类型:String、StringBuffer 和 StringBuilder,详细讲解了它们的区别与使用场景。String 是不可变的字符串常量,线程安全但操作效率较低;StringBuffer 是可变的字符串缓冲区,线程安全但性能稍逊;StringBuilder 同样是可变的字符串缓冲区,但非线程安全,性能更高。文章还列举了三者的常用方法,并总结了它们在不同环境下的适用情况及执行速度对比。
197 17
|
8月前
|
存储 缓存 安全
Java字符串缓冲区
字符串缓冲区是用于处理可变字符串的容器,Java中提供了`StringBuffer`和`StringBuilder`两种实现。由于`String`类不可变,当需要频繁修改字符串时,使用缓冲区更高效。`StringBuffer`是一个线程安全的容器,支持动态扩展、任意类型数据转为字符串存储,并提供多种操作方法(如`append`、`insert`、`delete`等)。通过这些方法,可以方便地对字符串进行添加、插入、删除等操作,最终将结果转换为字符串。示例代码展示了如何创建缓冲区对象并调用相关方法完成字符串操作。
194 13
|
12月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
284 83
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
212 60
|
12月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
214 26
|
12月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
330 8