Java substring() 方法详解

在Java编程中,字符串处理是非常常见的任务,其中提取字符串的子串操作更是屡见不鲜。Java提供了非常方便的substring()方法,让我们可以轻松地从一个字符串中提取出子字符串。本文将详细介绍substring()方法的简介、用法和示例,并通过多个例子帮助你更好地理解和使用substring()方法。

substring() 方法简介

substring()方法是Java String类中的一个实例方法,用于返回字符串的一个子字符串。它有两个重载版本:

java 复制代码
public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)
方法参数说明:
  • beginIndex: 起始索引(包含),从0开始。
  • endIndex: 结束索引(不包含)。
返回值:

返回从beginIndexendIndex之间的子字符串。如果只有beginIndex参数,则返回从beginIndex到字符串末尾的子字符串。

注意:
  • 如果索引超出字符串的范围,或者beginIndex大于endIndex,将抛出StringIndexOutOfBoundsException异常。

substring() 方法用法

下面通过几个示例来演示substring()方法的具体用法。

示例1:基本用法
java 复制代码
public class SubstringExample {
    public static void main(String[] args) {
        String str = "Hello, World!";
        
        // 从索引7开始,到字符串末尾
        String subStr1 = str.substring(7);
        System.out.println(subStr1);  // 输出: World!
        
        // 从索引0开始,到索引5(不包含)
        String subStr2 = str.substring(0, 5);
        System.out.println(subStr2);  // 输出: Hello
    }
}
示例2:分割日期字符串

假设我们有一个日期字符串2001-01-01,我们希望去掉中间的-,得到一个新的字符串20010101。可以利用substring()方法来实现。

java 复制代码
public class DateSubstringExample {
    public static void main(String[] args) {
        String date = "2001-01-01";
        
        // 提取年份
        String year = date.substring(0, 4);
        // 提取月份
        String month = date.substring(5, 7);
        // 提取日期
        String day = date.substring(8, 10);
        
        // 拼接成新的日期格式
        String newDate = year + month + day;
        System.out.println(newDate);  // 输出: 20010101
    }
}
示例3:提取文件名和扩展名

假设有一个文件名example.txt,我们希望提取出文件名和扩展名。

java 复制代码
public class FileNameExample {
    public static void main(String[] args) {
        String fileName = "example.txt";
        
        // 找到最后一个点的位置
        int dotIndex = fileName.lastIndexOf('.');
        
        // 提取文件名(不包括扩展名)
        String name = fileName.substring(0, dotIndex);
        // 提取扩展名
        String extension = fileName.substring(dotIndex + 1);
        
        System.out.println("File name: " + name);      // 输出: example
        System.out.println("File extension: " + extension);  // 输出: txt
    }
}

substring() 方法的注意事项

  • 索引从0开始,且包括beginIndex但不包括endIndex
  • 如果beginIndexendIndex超出字符串的长度,会抛出StringIndexOutOfBoundsException异常。
  • 在字符串操作中,注意索引的正确性,以防止出现越界错误。

希望本文对你有所帮助。如果你有任何疑问或建议,欢迎在评论区留言讨论。Happy coding!

相关推荐
zquwei6 分钟前
SpringCloudGateway+Nacos注册与转发Netty+WebSocket
java·网络·分布式·后端·websocket·网络协议·spring
TT哇12 分钟前
*【每日一题 提高题】[蓝桥杯 2022 国 A] 选素数
java·算法·蓝桥杯
火烧屁屁啦35 分钟前
【JavaEE进阶】初始Spring Web MVC
java·spring·java-ee
飞飞-躺着更舒服39 分钟前
【QT】实现电子飞行显示器(改进版)
开发语言·qt
w_31234541 小时前
自定义一个maven骨架 | 最佳实践
java·maven·intellij-idea
岁岁岁平安1 小时前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
武昌库里写JAVA1 小时前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计
Q_19284999061 小时前
基于Spring Boot的九州美食城商户一体化系统
java·spring boot·后端
张国荣家的弟弟1 小时前
【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
java·jar·bi
ZSYP-S1 小时前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring