Java截取(提取)子字符串(substring()),Java分割字符串(split())

news2024/9/20 10:51:33

在 String 中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。

1. substring(int beginIndex) 形式

此方式用于提取从索引位置开始至结尾处的字符串部分。调用时,括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。例如:

 
  1. String str = "我爱 java 编程";
  2. String result = str.substring(3);
  3. System.out.println(result); // 输出:Java 编程
2. substring(int beginIndex,int endIndex) 形式

此方法中的 beginIndex 表示截取的起始索引,截取的字符串中包括起始索引对应的字符;endIndex 表示结束索引,截取的字符串中不包括结束索引对应的字符,如果不指定 endIndex,则表示截取到目标字符串末尾。该方法用于提取位置 beginIndex 和位置 endIndex 位置之间的字符串部分。

这里需要特别注意的是, 对于开始位置 beginIndex, Java 是基于字符串的首字符索引为 0 处理的,但是对于结束位置 endIndex,Java 是基于字符串的首字符索引为 1 来处理的,如图 1 所示。
 


图1 字符串中的字符索引


注意:substring() 方法是按字符截取,而不是按字节截取。

例 1

创建一个字符串,对它使用 substring() 方法进行截取并输出结果。示例代码如下:

 
  1. public static void main(String[] args) {
  2. String day = "Today is Monday"; //原始字符串
  3. System.out.println("substring(0)结果:"+day.substring(0));
  4. System.out.println("substring(2)结果:"+day.substring(2));
  5. System.out.println("substring(10)结果:"+day.substring(10));
  6. System.out.println("substring(2,10)结果:"+day.substring(2,10));
  7. System.out.println("substring(0,5)结果:"+day.substring(0,5));
  8. }

输出结果如下所示:

substring(0)结果:Today is Monday
substring(2)结果:day is Monday
substring(10)结果:onday
substring(2,10)结果:day is M
substring(0,5)结果:Today

Java分割字符串(split())

String 类的 split() 方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。该方法主要有如下两种重载形式:

 
  1. str.split(String sign)
  2. str.split(String sign,int limit)

其中它们的含义如下:

  • str 为需要分割的目标字符串。
  • sign 为指定的分割符,可以是任意字符串。
  • limit 表示分割后生成的字符串的限制个数,如果不指定,则表示不限制,直到将整个目标字符串完全分割为止。


使用分隔符注意如下:

1)“.”和“|”都是转义字符,必须得加“\\”。

  • 如果用“.”作为分隔的话,必须写成String.split("\\."),这样才能正确的分隔开,不能用String.split(".")
  • 如果用“|”作为分隔的话,必须写成String.split("\\|"),这样才能正确的分隔开,不能用String.split("|")


2)如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or")

例 1

使用 split() 方法对字符串进行分割的实例如下:

 
  1. public static void main(String[] args) {
  2. String Colors = "Red,Black,White,Yellow,Blue";
  3. String[] arr1 = Colors.split(","); // 不限制元素个数
  4. String[] arr2 = Colors.split(",", 3); // 限制元素个数为3
  5. System.out.println("所有颜色为:");
  6. for (int i = 0; i < arr1.length; i++) {
  7. System.out.println(arr1[i]);
  8. }
  9. System.out.println("前三个颜色为:");
  10. for (int j = 0; j < arr2.length; j++) {
  11. System.out.println(arr2[j]);
  12. }
  13. }

输出结果如下:

所有颜色为:
Red
Black
White
Yellow Blue
前三个颜色为:
Red
Black
White,Yellow,Blue

从输出的结果可以看出,当指定分割字符串后组成的数组长度(大于或等于 1)时,数组的前几个元素为字符串分割后的前几个字符,而最后一个元素为字符串的剩余部分。

例如,在该实例中,指定了 arr2 的长度为 3,而字符串 Colors 分割后组成的数组长度为 5。因此会将 arr2 中的前两个元素赋值为 Colors 分割后的前两个字符,arr2 中的第 3 个元素为 Colors 字符串的后 3 个字符组成的字符串。

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

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

相关文章

基于SpringBoot的设备管理系统

基于SpringBootVue的设备管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven角色&#xff1a;管理员、员工、用户 系统展示 管理员界面 员工界面 用户界面 摘要 基于Sp…

【鸿蒙软件开发】ArkTS基础组件之Gauge(环形图表)、LoadingProgress(动态加载)

文章目录 前言一、Gauge环形图表1.1 子组件1.2 接口参数介绍 1.2 属性1.3 示例代码二、LoadingProgress2.1 子组件2.2 接口2.3 属性2.4 示例代码 总结 前言 Gauge&#xff1a;数据量规图表组件&#xff0c;用于将数据展示为环形图表。 LoadingProgress&#xff1a;用于显示加载…

【STM32】标准库的引入

一、为什么要会有标志外设库 1、传统单片机软件开发方式 (1)芯片厂商提供数据手册、示例代码、开发环境 (2)单片机软件工程师面向产品功能&#xff0c;查阅数据手册&#xff0c;参考官方示例代码进行开发 (3)硬件操作的方式是用C语言对寄存器进行读写以操作硬件 (4)主要工作量…

揭秘提升远程团队协作效率的秘密武器:这款在线白板工具不容错过!

说到出色的远程团队协作工具&#xff0c;任何已经完善了远程/混合工作模式的公司都使用了大量的在线协作软件。TrustRadius进行的一项调查显示&#xff0c;三分之二的企业正在投资于网络会议软件。 对于任务跟踪、协作工作或员工互动&#xff0c;市场上有许多工具可供选择。不…

2023年【电工(技师)】证考试及电工(技师)模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 电工&#xff08;技师&#xff09;证考试根据新电工&#xff08;技师&#xff09;考试大纲要求&#xff0c;安全生产模拟考试一点通将电工&#xff08;技师&#xff09;模拟考试试题进行汇编&#xff0c;组成一套电工…

Redis数据类型——set类型数据交并差操作

1.业务场景 2.求两个set集合中交并补的操作

电流源,恒流源,直流电子负载

四个并联比一个电阻噪声小 ADI方案

HuggingFace 国内下载 阿里云盘下载速度20MB/s

文章目录 效果展示思路阿里云盘API工具 aligo安装aligoaligo教程实战 保存模型到阿里云盘海外服务器下载模型装包aligo的上传代码 国内下载其他方式 效果展示 Huggingface被屏蔽了&#xff0c;根本下载不了。 阿里云盘下载速度最高可达20MB/s&#xff0c;平均17MB/s左右。【注…

充气膜建筑的形体设计

建筑体量、形象、材料、色彩等都对应同周围环境协调。建筑设计构思要把客观存在的“境”与主管构思的“意”融合起来。一方面要分析环境对建筑可能产生的影响&#xff0c;另一方面要分析设想中的建筑在自然环境中的地位。因地制宜&#xff0c;结合地形的 高低起伏&#xff0c;利…

UG\NX二次开发 在资源栏(左侧面板)中添加按钮

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 感谢粉丝订阅 感谢 apolloryd 订阅本专栏,非常感谢。 简介 UG\NX二次开发 在资源栏(左侧面板)中添加按钮,下面提供了帮助说明,在 UGOPEN 文件夹下有示例。 C++语言在UG二次…

选择合适的项目管理系统来支持专业产品研发团队

专业产品研发团队的公司离不开其严谨的管理和高效的研发流程&#xff0c;为了进一步提升研发效率和管理水平&#xff0c;产研团队需要一个全流程的项目管理系统来支持其研发团队的协同合作。 一、系统需求 IT行业的研发工作涵盖了从立项、项目变更到项目的进程计划等多个环节。…

Windows server部署filebeat到kafka

需求&#xff1a;Windows dhcp日志需要实时传输到elk或者其他告警平台。 1、filebeat下载地址&#xff1a;https://www.elastic.co/cn/downloads/beats/filebeat 2、下载后解压后配置filebeat.yml文件&#xff0c; 3、README.md文件中有运行的操作方法&#xff1a;cmd上进入f…

基于springboot财务管理系统

基于springboot财务管理系统 系统主要包括首页&#xff0c;个人中心&#xff0c;员工管理&#xff0c;部门管理&#xff0c;员工工资管理&#xff0c;工资调整管理&#xff0c;资产类别管理&#xff0c;固定资产管理&#xff0c;经营信息管理&#xff0c;序时账管理&#xff0c…

从0到1配置TensorRT环境

根据博文&#xff1a;TensorFlow2.x模型转onnx、TensorRT给出的环境来配置。 以下是该博文中给出的版本信息 TensorFlow 2.4 CUDA 11.1 CUDNN 8 TensorRT 8.2.1.8 tf2onnx 1.13.0 onnx 1.12.0 下载地址 包下载地址TensorRT 8.2.1.8https://developer.nvidia.com/nvidia-tenso…

代码随想录 Day27 贪心02中 LeetCode T55跳跃游戏

LeetCode T55 跳跃游戏 题目链接:55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; 题目思路: 这题我们可以换一个思想,将跳跃问题转换为覆盖问题,我们每遇到一个元素就跳到这个元素可以覆盖到的最大位置,当能覆盖下整个数组的时候,就说明能达到,返回true,否则返回false …

机关事务管理局数字化平台,让数据纵向直报,业务横向打通

机关事务管理局的核心职能是实现对机关事务的管理、保障、服务&#xff0c;是面向政府机关部门的“后勤服务”部门。 主要职能有&#xff1a;推进国有资产管理、公务用车管理、办公用房管理、公共机构节能管理、后勤管理等。党和政府“过紧日子”的要求为机关事务工作提出了更…

1600*C. Remove Adjacent(贪心字符串)

Problem - 1321C - Codeforces 解析&#xff1a; 贪心&#xff0c;从z到a遍历&#xff0c;每次循环减去符合题意的字符。 #include<bits/stdc.h> using namespace std; signed main(){int n;string s;cin>>n>>s;for(char iz;i>a;i--){for(int j0;j<s.…

使用SPSS进行重复测量方差分析-包括数据正态性检验

最近在处理重复测量数据&#xff0c;新学了重复测量方差分析、广义估计方程这两个方法&#xff0c;都是在SPSS中进行的。只有数据服从正态分布才可以用重复测量方差分析&#xff0c;如果不符合可以用广义估计方程或者其它方法&#xff0c;这次先介绍重复测量方差分析 具体的操…

ubuntu 22.04 设置 apt 代理 配置 清华源 add-apt-repository 代理

另一种临时代理 export http_proxyhttp://<proxy>:<port> export https_proxyhttp://<proxy>:<port> sudo -E add-apt-repository ppa:linaro-maintainers/toolchainhttps://askubuntu.com/questions/53146/how-do-i-get-add-apt-repository-to-work-…

SpringBoot集成ES、使用Java API对其进行简单的测试

文章目录 版本信息记录使用Java API配置ES客户端实现集成pom.xml添加相关的Dependency使用javaConfig构建RestHighLevelClient对象 给ES中存储文档数据,当然也可以更新文档数据search API:搜索 address 中包含mill的所有人的年龄分布以及平均年龄search API:按照年龄聚合&#…