Java中的substring()方法使用举例详解

 更新时间:2024年12月23日 09:05:18   作者:音乐学家方大刚  
这篇文章主要介绍了Java中的substring()方法使用的相关资料,文中包括其概述、参数、返回值、使用示例、注意事项、常见用法和总结,通过代码介绍的非常详细,需要的朋友可以参考下

前言

在 Java 编程中,字符串(String)操作是非常常见的任务之一。为了方便开发者操作字符串,Java 提供了许多内置方法,其中 substring() 是一个非常强大且常用的方法。substring() 方法用于提取字符串中的一个子字符串,可以根据需要获取字符串的任意部分。

1. substring() 方法的概述

substring() 方法属于 String 类,用于从字符串中提取一个子字符串。它有两个常用的重载版本:

String substring(int beginIndex)
String substring(int beginIndex, int endIndex)

2. substring() 方法的参数与返回值

beginIndex: 这是起始索引(包括在内),表示从该索引开始的字符将包含在返回的子字符串中。索引从 0 开始。

endIndex: (可选)这是结束索引(不包括在内),表示在该索引之前的字符将包含在返回的子字符串中。

返回值: 返回一个新的字符串,它包含从 beginIndex 开始到 endIndex 之前的所有字符。如果只指定 beginIndex,则返回从该位置开始到字符串末尾的所有字符。

3. substring() 方法的使用示例

示例 1:使用 substring(int beginIndex)

这种形式的 substring() 方法从指定的起始索引提取直到字符串末尾的所有字符。

public class SubstringExample {
    public static void main(String[] args) {
        String str = "Hello, Java!";
        
        // 提取从索引 7 开始的子字符串
        String result = str.substring(7);
        
        System.out.println("结果: " + result);  // 输出: "Java!"
    }
}

示例 2:使用 substring(int beginIndex, int endIndex)

这种形式的 substring() 方法提取从 beginIndex 到 endIndex 之间的字符,endIndex 处的字符不包含在结果中。

public class SubstringExample {
    public static void main(String[] args) {
        String str = "Hello, Java!";
        
        // 提取从索引 7 到 11 之间的子字符串
        String result = str.substring(7, 11);
        
        System.out.println("结果: " + result);  // 输出: "Java"
    }
}

4. 注意事项

使用 substring() 方法时,有几个重要的注意事项:

索引范围: beginIndex 必须在 0 到 length() 之间,而 endIndex 必须在 beginIndex 到 length() 之间。否则会抛出 StringIndexOutOfBoundsException 异常。

String str = "Hello, Java!";
String result = str.substring(15);  // 这会抛出异常,因为索引超出范围

空字符串: 如果 beginIndex 等于字符串的长度,substring() 返回一个空字符串。如果 beginIndex 和 endIndex 相等,也会返回一个空字符串。

String str = "Hello, Java!";
String result = str.substring(12, 12);  // 返回空字符串

性能问题: 早期版本的 Java 中,substring() 会导致原始字符串的内存无法释放,因为子字符串仍然引用原始字符串的字符数组。但从 Java 7 Update 6 开始,这个问题已经被解决了。

5. 常见的用法

提取文件扩展名:

String fileName = "example.txt";
String extension = fileName.substring(fileName.lastIndexOf(".") + 1);
System.out.println("文件扩展名是: " + extension);  // 输出: "txt"

提取URL中的域名:

String url = "https://www.example.com/index.html";
String domain = url.substring(url.indexOf("://") + 3, url.indexOf("/", url.indexOf("://") + 3));
System.out.println("域名是: " + domain);  // 输出: "www.example.com"

去除字符串两端的括号:

String text = "(Java)";
String result = text.substring(1, text.length() - 1);
System.out.println("去除括号后的文本: " + result);  // 输出: "Java"

6. 总结

substring() 是 Java 中非常有用的字符串处理方法,它使得提取字符串的任意部分变得非常简单。通过了解 substring() 方法的使用方式及其注意事项,你可以更加灵活地操作字符串,满足各种实际开发需求。

到此这篇关于Java中的substring()方法使用的文章就介绍到这了,更多相关Java substring()方法详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈Java中GuavaCache返回Null的注意事项

    浅谈Java中GuavaCache返回Null的注意事项

    Guava在实际的Java后端项目中应用的场景还是比较多的,比如限流,缓存,容器操作之类的,本文主要介绍了GuavaCache返回Null的注意事项,感兴趣的可以了解一下
    2021-10-10
  • macOS查看与安装Java JDK的完整步骤

    macOS查看与安装Java JDK的完整步骤

    本文详细介绍了在macOS上查看、安装、配置和管理Java JDK的步骤,包括使用官网下载、Homebrew、SDKMAN和IntelliJ IDEA内置JDK等方法,同时,还涵盖了环境变量配置、多版本管理以及常见问题解决等,需要的朋友可以参考下
    2026-03-03
  • Spring MVC实现GET请求接收Date类型参数

    Spring MVC实现GET请求接收Date类型参数

    这篇文章主要介绍了Spring MVC实现GET请求接收Date类型参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Springboot集成Tika实现文档解析

    Springboot集成Tika实现文档解析

    Tika是一款Apache开源的,跨平台,支持多品种文本类型的内容检测和提取工具,本文将介绍Springboot如何集成Tika实现文档解析,需要的可以参考下
    2024-11-11
  • 在Java中解析JSON数据代码示例及说明

    在Java中解析JSON数据代码示例及说明

    这篇文章主要介绍了在Java中解析JSON数据的相关资料,文中讲解了如何使用Gson和Jackson库解析JSON数据,并展示了如何将日期时间字符串转换为时间戳,通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • Java中Optional.of()方法及源码解析(非常详细!)

    Java中Optional.of()方法及源码解析(非常详细!)

    这篇文章主要给大家介绍了关于Java中Optional.of()方法及源码解析的相关资料,Java中java.util .Optional类的of()方法用于获得该Optional类中具有指定类型的指定值的一个实例,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • SpringBoot2.0实现多图片上传加回显

    SpringBoot2.0实现多图片上传加回显

    这两天公司有需求让做一个商户注册的后台功能,其中需要商户上传多张图片并回显,本文就使用SpringBoot2.0实现,具有一定的参考价值,感兴趣的可以了解一下
    2021-07-07
  • jwt原理及Java中实现过程

    jwt原理及Java中实现过程

    JWT是无状态认证的JSON令牌,包含头部、载荷和签名,用于身份验证与权限管理,需注意设置过期时间、使用非对称算法、安全存储传输,及合理刷新策略,确保系统安全与效率
    2025-08-08
  • Java多线程锁机制相关原理实例解析

    Java多线程锁机制相关原理实例解析

    这篇文章主要介绍了Java多线程锁机制相关原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论