substring 是编程里面非常常用的字符串截取方法,核心作用就是从原字符串当中,按照指定起始位置和结束位置,提取出一段子字符串,在 JavaScript Java C 等主流编程语言里面都存在 substring 这个方法,不同语言里面参数规则有细微差别,最容易出错的点就是索引是从 0 开始计数,很多新手会误以为下标从 1 开始,导致截取出来的内容错位,还有部分语言 substring 第二个参数代表结束索引,不是截取长度,这个和 substr 参数含义不一样,做题和写代码的时候很容易把这两个方法搞混,掌握 substring 用法之后,可以实现提取身份证号片段 截取文件名 切割文本等各类字符串处理需求,是计算机二级 前端 后端笔试的高频考点。
基础核心规则
substring 英文含义就是子串,调用格式一般是 原字符串.substring (起始索引,结束索引)
1 起始索引 必填,代表截取开始位置,下标从 0 开始
2 结束索引 可选,如果省略这个参数,就会从起始索引一直截取到字符串末尾
3 截取出来的子串包含起始索引位置字符,不包含结束索引位置字符,也就是左闭右开
4 如果传入的两个参数大小颠倒,比如起始索引大于结束索引,部分语言会自动交换两个参数,不会直接报错
分语言参数对照表
| 编程语言 | 调用写法 | 参数说明 |
|---|---|---|
| JavaScript | str.substring(start, end) | start 起始下标 end 结束下标 左闭右开 |
| Java | str.substring(start, end) | start 起始下标 end 结束下标 左闭右开 |
| C# | str.Substring(start, length) | 第二个参数是截取长度,和 JS Java 不一样 |
代码示例
JavaScript 示例
const text = "abcdef"
const res = text.substring (1,4)
结果是 bcd
解释 下标 1 是 b,下标 4 是 e,不包含 e,所以取出 b c d
如果写成 text.substring (2)
结果是 cdef,省略结束索引,从下标 2 一直截取到末尾
Java 示例
String str = "hello world"
String result = str.substring (0,5)
结果是 hello
substring 和 substr 区分清单
substring 第二个参数是结束索引
substr 第二个参数是要截取的字符长度
举例 str abcdef
substring (1,3) 得到 bc
substr (1,3) 得到 bcd
这个是笔试最经典易混考点,一定要分清
常见异常情况处理
1 如果起始索引等于结束索引,返回空字符串
2 如果传入负数,JavaScript 里面 substring 会把负数自动转换成 0,Java 里面传入负数会抛出异常
3 如果结束索引超过字符串总长度,一般会自动截取到字符串末尾,不会报错
典型应用场景
提取固定位置编号
截取网页文本前缀
校验字符串片段
拆分文件名称和后缀
【常见问题】
问题 1 substring 用法里面第二个参数是截取长度吗
回答 1 substring 用法当中,JavaScript 和 Java 版本的第二个参数是结束索引,不是截取长度,C 的 Substring 第二个参数才是截取长度,写代码的时候一定要区分编程语言版本。
问题 2 substring 用法里面下标是从 0 开始还是从 1 开始
回答 1 substring 用法统一遵循下标从 0 开始计数,截取区间是左闭右开,包含起始位置字符,不包含结束位置字符,新手最容易在这里出现偏移错误。
问题 3 substring 用法和 substr 用法核心差别是什么
回答 1 substring 用法第二个参数代表结束索引,substr 第二个参数代表截取字符长度,二者参数定义不一样,笔试经常把这两个方法放在一起考察辨析。
【免责申明】
本内容仅作为编程知识学习参考,不同编程语言版本 substring 用法可能存在更新差异,实际开发请以对应语言官方文档为准,本内容不构成考试押题,不对答题得分做任何承诺。
本文来自作者[算力摆渡人]投稿,不代表绮畅科技网立场,如若转载,请注明出处:https://www.lorte.cn/bkjy/202611/3704.html
评论列表(4条)
我是绮畅科技网的签约作者“算力摆渡人”!
希望本篇文章《substring 用法 字符串截取函数详解》能对你有所帮助!
本站[绮畅科技网]内容主要涵盖:教育咨询,知识百科
本文概览:substring 是编程里面非常常用的字符串截取方法,核心作用就是从原字符串当中,按照指定起始位置和结束位置,提取出一段子字符串,在 JavaScript Java C 等主流编程语言里面都存在 substring 这个方法,不同语言里面参数规则有细微差别,最容易出错的点就是索引是从 0 开始计数,很多新手会误以为下标从 1 开始,导致截取出来的内容错位,还有部分语言 substring 第二个参数代表结束索引,不是截取长度,这个和 substr 参数含义不一样,做题和写代码的时候很容易把这两个方法搞混,掌握 substring 用法之后,可以实现提取身份证号片段 截取文件名 切割文本等各类字符串处理需求,是计算机二级 前端 后端笔试的高频考点。