字符串的操作是算法题当中经常碰见的一类题目,主要考察对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):
代码语言:javascript复制 let txt = "ABCDEFGHIJKLABCDEFGH";
console.log(txt.indexOf("ABCD", 5)); // 12
console.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, Mango
console.log(txt.slice(7,13)); // Banana
如果某个参数为负,则从字符串的结尾开始计数:
代码语言:javascript复制 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, Mango
console.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
属性访问(不推荐):
代码语言:javascript复制 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' ]