当前位置: 首页 > news >正文

TypeScript算法基础——TS字符串的常用操作总结:substring、indexOf、slice、replace等

字符串的操作是算法题当中经常碰见的一类题目,主要考察对string类型的处理和运用。

在处理字符串的时候,我们经常会碰到求字符串长度、匹配子字符串、替换字符串内容、连接字符串、提取字符串字符等操作,那么调用一些简单好用的api可以让工作事半功倍,在TypeScript中,这些api其实和JavaScript的相同,下面整理一些比较常用的api:

1️⃣、返回字符串长度

length属性: 返回字符串的长度

	let txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";console.log(txt.length)  // 26

2️⃣、查找字符串

indexOf() 方法: 返回字符串中指定文本首次出现的索引(从0开始数,未找到则返回 -1):

	let txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";console.log(txt.indexOf('ABCD'))  // 0

lastIndexOf()方法: 返回字符串中指定文本最后一次出现的索引:

	let txt = "ABCDEFGHIJKLABCDEFGH";console.log(txt.lastIndexOf('ABCD'))  // 12

可以添加检索起始位置为第二个参数:txt.indexOf(“ABCD”, 5)、txt.lastindexOf(“ABCD”, 10):

    let txt = "ABCDEFGHIJKLABCDEFGH";console.log(txt.indexOf("ABCD", 5)); // 12console.log(txt.lastIndexOf("ABCD", 10)); // 0

includes() 方法: 如果字符串包含指定值,includes() 方法返回 true

    let txt = "a,b,c,aaa,bbb,aaa";console.log(txt.includes("aaa")); // true

3️⃣、提取字符串

slice()方法:提取字符串的某个部分并在新字符串中返回被提取的部分:

    let txt = "Apple, Banana, Mango";console.log(txt.slice(7)); //  Banana, Mangoconsole.log(txt.slice(7,13)); //  Banana

如果某个参数为负,则从字符串的结尾开始计数:

    let txt = "Apple, Banana, Mango";console.log(txt.slice(7,-3)); // Banana, Ma

substring()方法: 类似于 slice(),提取字符串的某个部分并在新字符串中返回被提取的部分。

    let txt = "Apple, Banana, Mango";console.log(txt.substring(7));  //  Banana, Mangoconsole.log(txt.substring(7,10)); // Ban

substr()方法:类似于 slice(),但第二个参数是被提取部分的长度。

    let txt = "Apple, Banana, Mango";console.log(txt.substr(7,4)); // Bana

4️⃣、替换字符串内容

replace() 方法: 用另一个值替换在字符串中指定的值,返回新字符串,默认只替换首个匹配:

let txt = "Apple, Banana, Mango";
console.log(txt.replace("Banana", "Orange")); // Apple, Orange, Mango
// 执行大小写不敏感的替换,使用正则表达式 /i 
console.log(txt.replace(/BAnana/i, "Orange")); // Apple, Orange, Mango
// 替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索):
let txt = "Apple, Banana, Mango, Banana";
console.log(txt.replace(/Banana/g, "Orange")); // Apple, Orange, Mango, Orange

5️⃣、转换为大写和小写

toUpperCase() 方法:把字符串转换为大写:

    let txt = "Apple, Banana, Mango, Banana";console.log(txt.toUpperCase()); // APPLE, BANANA, MANGO, BANANA

toLowerCase() 方法:把字符串转换为大写:

    let txt = "Apple, Banana, Mango, Banana";console.log(txt.toLowerCase()); // apple, banana, mango, banana

6️⃣、连接字符串

concat() 方法:连接两个或多个字符串:

    let txt1 = "Apple";let txt2 = "Banana";let txt3 = "Mango";console.log(txt1.concat(" ", txt2, " ", txt3)); // Apple Banana Mango

7️⃣、提取字符串字符

charAt() 方法: 返回字符串中指定下标(位置)的字符串

    let txt1 = "Apple";console.log(txt1.charAt(1)); // p

charCodeAt() 方法: 返回字符串中指定索引的字符 unicode 编码

    let txt1 = "Apple";console.log(txt1.charCodeAt(1)); // 112

属性访问(不推荐):

    let txt1 = "Apple";console.log(txt1[1]); // p

8️⃣、切片把字符串转换为数组

split() 方法: 切片,以某个为分隔,将字符串转换为数组:

    let txt1 = "a,b,c";console.log(txt1.split("")); // [ 'a', ',', 'b', ',', 'c' ]console.log(txt1.split(",")); // [ 'a', 'b', 'c' ]

最后

💖 个人简介:2022年度博客之星总排名TOP12、人工智能领域TOP2,人工智能领域优质创作者。

📝 关注我:中杯可乐多加冰

🔥 限时免费订阅:TypeScript算法实战

📝 加入社群 抱团学习:中杯可乐的答疑交流群

🎉 支持我:点赞👍+收藏⭐️+留言📝

http://www.lryc.cn/news/21240.html

相关文章:

  • Leetcode100-两数之和
  • 4565: 删除中间的*
  • VUE组件示例说明
  • Widget中的State-学习笔记
  • 股市实战技巧(知行合一)
  • k8s-资源限制-探针检查
  • 一文让你彻底了解Linux内核文件系统
  • 解决前端组件下拉框选择功能失效问题
  • Linux_vim编辑器入门级详细教程
  • TCP 的演化史-TCP 是一个过渡
  • Flask
  • SAP系统与MES系统的数据协同技术方案
  • 2018年蓝桥杯省赛试题-5道(Python)
  • Python稀疏矩阵最小二乘法
  • mac本前端Homebrew下载,操作
  • Linux系统之查看进程监听端口方法
  • 使用命令别名一键启动arthas
  • python+pytest接口自动化(2)-HTTP协议基础
  • 操作系统权限提升(十五)之绕过UAC提权-基于白名单DLL劫持绕过UAC提权
  • 非常好看的html网页个人简历
  • 轻量级网络模型ShuffleNet V2
  • 分享美容美发会员管理系统功能的特点_美容美发会员管理系统怎么做
  • Oracle-05-DCL篇
  • tess4j简单使用入门
  • WebGPU学习(4)---使用 UniformBuffer
  • Http客户端Feign-远程调用
  • RK3568镜像的拆包和打包
  • 《设计模式》适配器模式
  • linux 随笔 5-服务管理
  • 【java基础】枚举类(enum)