Java substring() 方法详解

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

substring() 方法简介

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

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

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

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

substring() 方法用法

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

示例1:基本用法
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()方法来实现。

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,我们希望提取出文件名和扩展名。

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);      // 输出: exampleSystem.out.println("File extension: " + extension);  // 输出: txt}
}

substring() 方法的注意事项

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/35331.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PTE-靶场训练-1

PTE-靶场训练实战笔记 靶场搭建 靶场下载链接: https://pan.baidu.com/s/1ce1Kk0hSYlxrUoRTnNsiKA?pwdha1x vim /etc/sysconfig/network-scripts/ifcfg-eth0 设置好后reboot重启一下即可,然后访问81-85端口,共5题。 因为靶场出了问题&a…

C++ Primer 中文版 第5版 读书笔记

读书过程中发现&#xff0c;读得越多&#xff0c;忘得越多。因此记录读书笔记 1.2 初始输入输出 向流写入数据 <<运算符&#xff08;输出运算符&#xff09;接受两个运算对象&#xff1a;左侧的运算对象必须是一个ostream对象&#xff0c;右侧的运算对象是要打印的值。…

Spark SQL----连接其他数据库的JDBC

Spark SQL----连接其他数据库的JDBC 数据源选项 Spark SQL还包括一个数据源&#xff0c;可以使用JDBC从其他数据库读取数据。与使用 JdbcRDD相比&#xff0c;应该优先使用此功能。这是因为结果以DataFrame的形式返回&#xff0c;并且可以很容易地在Spark SQL中进行处理或与其他…

React 中 useState 和 useReducer 的联系和区别

文章目录 使用场景使用 useState使用 useReducer 联系区别用法状态更新逻辑适用场景可读性和可维护性 使用场景 使用 useState 状态逻辑简单。只涉及少量的状态更新。需要快速和简单的状态管理。 使用 useReducer 状态逻辑复杂。涉及多个子状态或多种状态更新逻辑。需要更好…

Vatee万腾平台:一站式智慧服务,让生活更美好

在数字化浪潮席卷全球的今天&#xff0c;我们生活的方方面面都在经历着前所未有的变革。Vatee万腾平台凭借其一站式智慧服务&#xff0c;正成为推动这场变革的重要力量&#xff0c;让我们的生活变得更加美好。 Vatee万腾平台&#xff0c;作为一家专注于提供智慧服务的领军企业&…

【运维】如何分析和清理 Linux 根目录的磁盘空间使用情况

要分析根目录(/)使用了这么多空间&#xff0c;您可以使用以下几种方法来找出具体的占用情况&#xff1a; 1. 使用 du 命令 du 命令可以显示目录或文件的磁盘使用情况。 运行以下命令来找出根目录下的哪些目录占用了大量空间&#xff1a; sudo du -h --max-depth1 / | sort …

基于weixin小程序校园快递系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;订单管理&#xff0c;快递管理&#xff0c;快递记录管理&#xff0c;公告管理&#xff0c;基础数据管理 小程序功能包括&#xff1a;系统首页&#xff0c;…

企业有必要安装数据文件加密软件吗?哇!这么多好处

需要的 一、查看以下分析&#xff0c;便能得出结论 安全防护提升&#xff1a;禁止拷贝、打印、截屏等&#xff0c;还能够设置文件的浏览次数、有效期&#xff0c;提供多层次的文档保护措施。 核心机密保护&#xff1a;企业的核心机密文件、技术资料、客户资料等重要信息是公…

MySQL——Update语句详解

update 修改谁 &#xff08;条件&#xff09; set 原来的值 新值 -- 修改学员的名字(指定条件&#xff0c;只改一列) UPDATE student SET name 辰阳 WHERE id 1; -- 修改学员的名字(不指定条件&#xff0c;全改) UPDATE student SET name 宝宝-- 语法&#xff1a; -- U…

【MySQL备份】mysqldump篇

目录 1.简介 2.基本用途 3.命令格式 3.1常用选项 3.2常用命令 4.备份脚本 5.定时执行备份脚本 1.简介 mysqldump 是 MySQL 数据库管理系统的命令行实用程序&#xff0c;用于创建数据库的逻辑备份。它能够导出数据库的结构&#xff08;如表结构、视图、触发器等&#xf…

reactjs18 中使用@reduxjs/toolkit同步异步数据的使用

react18 中使用@reduxjs/toolkit 1.安装依赖包 yarn add @reduxjs/toolkit react-redux2.创建 store 根目录下面创建 store 文件夹,然后创建 index.js 文件。 import {configureStore } from "@reduxjs/toolkit"; import {counterReducer } from "./feature…

Does a vector database maintain pre-vector chunked data for RAG systems?

题意&#xff1a;一个向量数据库是否为RAG系统维护预向量化分块数据&#xff1f; 问题背景&#xff1a; I believe that when using an LLM with a Retrieval-Augmented Generation (RAG) approach, the results retrieved from a vector search must ultimately be presented…

WIFI各版本的带宽

带宽的定义&#xff1a; 带宽在网络领域通常指信道带宽&#xff0c;即信号在频谱中占用的频宽&#xff0c;单位是MHz&#xff08;兆赫&#xff09;。在无线通信中&#xff0c;带宽越宽&#xff0c;能够传输的数据量越大&#xff0c;因此信道带宽直接影响着数据传输速率。WiFi标…

FairGuard游戏加固无缝兼容 Android 15 预览版

2024年6月25日&#xff0c;谷歌发布了 Android 15 Beta 3 &#xff0c;作为Android 15 “平台稳定性”的里程碑版本&#xff0c;谷歌建议所有应用、游戏、SDK、库和游戏引擎开发者都将“平台稳定性”里程碑版本作为规划最终兼容性测试和公开发布的目标。 安卓开发者博客提供的版…

【2024-热-办公软件】ONLYOFFICE8.1版本桌面编辑器测评

在今日快速发展的数字化办公环境中&#xff0c;选择一个功能全面且高效的办公软件是至关重要的。最近&#xff0c;我有幸体验了ONLYOFFICE 8.1版本的桌面编辑器&#xff0c;这款软件不仅提供了强大的编辑功能&#xff0c;还拥有众多改进&#xff0c;让办公更加流畅和高效。在本…

货运大模型的未来:轻量化、场景化

“加快数字化和智能化转型发展&#xff0c;已成为物流行业的重要战略方向。”6月25日&#xff0c;在第十九届中国国际物流节暨第二十一届中国国际运输与物流博览会&2024亚洲物流双年展在上海开幕&#xff0c;中国交通运输协会会长、原铁道部副部长胡亚东在开幕致辞中表示。…

Python实践项目讲解:如何用制作一个桌面宠物

制作一个桌面宠物&#xff08;Desktop Pet&#xff09;在Python中通常涉及多个步骤&#xff0c;包括创建宠物的图形界面、添加动画效果、处理用户交互等。下面是一个简化的步骤指南&#xff0c;帮助你开始使用Python制作桌面宠物&#xff1a; 选择图形库&#xff1a; Tkinter&…

《我的第一本编程书》-Sunaba编程中的存储区与数字

第一个Sunaba的代码是 存储区[65049]→500000 其中存储区相当于在内存中申请了一个空间&#xff0c;这个空间用来存储数据 有点类似其他变量并赋值 存储区后面的数字是在sunaba界面存储的坐标&#xff0c;修改这个坐标&#xff0c;输出的位置不同。 →后面的数字是存储的数…

新能源行业必会基础知识-----电力市场概论笔记-----绪论

新能源行业知识体系-------主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/139946830 目录 1. 电力市场的定义2. 对传统电力系统理论的挑战 1. 电力市场的定义 1. 我国电力市场的进程 我国新一轮电力体制改革的5大亮点&…

量子信息基础知识与实践指南

量子信息是一门涉及量子力学和信息理论的交叉学科&#xff0c;它探讨如何利用量子力学的性质来传输、存储和处理信息。以下是关于量子信息的基础知识和实践指南&#xff1a; 量子信息的基础知识&#xff1a; 量子比特&#xff08;Qubit&#xff09;&#xff1a; 量子比特是量子…