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

2024-10-04 22:34:12 浏览数 (2)

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

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

1️⃣、返回字符串长度

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

代码语言:javascript复制
	let txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	console.log(txt.length)  // 26

2️⃣、查找字符串

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

代码语言:javascript复制
	let txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	console.log(txt.indexOf('ABCD'))  // 0

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

代码语言:javascript复制
	let txt = "ABCDEFGHIJKLABCDEFGH";
	console.log(txt.lastIndexOf('ABCD'))  // 12

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

代码语言:javascript复制
    let txt = "ABCDEFGHIJKLABCDEFGH";
    console.log(txt.indexOf("ABCD", 5)); // 12
    console.log(txt.lastIndexOf("ABCD", 10)); // 0

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

代码语言:javascript复制
    let txt = "a,b,c,aaa,bbb,aaa";
    console.log(txt.includes("aaa")); // true

3️⃣、提取字符串

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

代码语言:javascript复制
    let txt = "Apple, Banana, Mango";
    console.log(txt.slice(7)); //  Banana, Mango
    console.log(txt.slice(7,13)); //  Banana

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

代码语言:javascript复制
    let txt = "Apple, Banana, Mango";
    console.log(txt.slice(7,-3)); // Banana, Ma

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

代码语言:javascript复制
    let txt = "Apple, Banana, Mango";
    console.log(txt.substring(7));  //  Banana, Mango
    console.log(txt.substring(7,10)); // Ban

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

代码语言:javascript复制
    let txt = "Apple, Banana, Mango";
    console.log(txt.substr(7,4)); // Bana

4️⃣、替换字符串内容

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

代码语言:javascript复制
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() 方法:把字符串转换为大写:

代码语言:javascript复制
    let txt = "Apple, Banana, Mango, Banana";
    console.log(txt.toUpperCase()); // APPLE, BANANA, MANGO, BANANA

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

代码语言:javascript复制
    let txt = "Apple, Banana, Mango, Banana";
    console.log(txt.toLowerCase()); // apple, banana, mango, banana

6️⃣、连接字符串

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

代码语言:javascript复制
    let txt1 = "Apple";
    let txt2 = "Banana";
    let txt3 = "Mango";
    console.log(txt1.concat(" ", txt2, " ", txt3)); // Apple Banana Mango

7️⃣、提取字符串字符

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

代码语言:javascript复制
    let txt1 = "Apple";
    console.log(txt1.charAt(1)); // p

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

代码语言:javascript复制
    let txt1 = "Apple";
    console.log(txt1.charCodeAt(1)); // 112

属性访问(不推荐):

代码语言:javascript复制
    let txt1 = "Apple";
    console.log(txt1[1]); // p

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

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

代码语言:javascript复制
    let txt1 = "a,b,c";
    console.log(txt1.split("")); // [ 'a', ',', 'b', ',', 'c' ]
    console.log(txt1.split(",")); // [ 'a', 'b', 'c' ]

0 人点赞