在刷算法题的时候,我们常常需要删除字符串中的某个字符,我们一般会从两个方面想,去解决这样的问题。
- 第一种,自己手搓一个function去实现一个删除字符串中某个字符的方法,参数传入字符串和要删除的字符下标,调用。
- 第二种,用js自备的方法。
显然,用第二种作为切入方式思考,下面我会介绍几种不同的方法:
- 使用 replace() 方法:将要删除的字符替换为空字符串。
let str = "Hello World!";
let newStr = str.replace('o', ''); // 删除字符串中的 'o'
console.log(newStr); // 输出 "Hell World!"
- 使用 split() 和 join() 方法:将字符串分割成字符数组,然后将要删除的字符过滤掉,最后将数组合并成字符串。
let str = "Hello World!";
let newStr = str.split('o').join(''); // 删除字符串中的 'o'
console.log(newStr); // 输出 "Hell Wrld!"
- 使用 substring() 方法:根据要删除字符的位置,将字符串切割成两部分,并将它们连接起来。
let str = "Hello World!";
let index = str.indexOf('o'); // 找到第一个 'o' 的位置
let newStr = str.substring(0, index) + str.substring(index + 1); // 删除第一个 'o'
console.log(newStr); // 输出 "Hell World!"
- 自定义函数删除指定位置的字符:第一种,结合使用 slice() 方法,可以删除字符串中的第 n 个字符。第二种,结合split('')以空字符分割为字符数组,在使用splice(n,1)删除字符,最后用join('')把字符数组合并为字符串。
//这是第一种
function removeCharacter(str, n) {
return str.slice(0, n) + str.slice(n + 1);
}
let str = "Hello World!";
let n = 4; // 要删除的是第 4 个字符,即 'o'
let newStr = removeCharacter(str, n);
console.log(newStr); // 输出 "Hell World!"
//这是第二种
let n = 1
let str = 'Hello World!'
let strArr = str.split('')
strArr.splice(n, 1)
console.log(strArr.join('')); // 输出“Hllo World!”
- 最后附上这些函数的基本使用说明
-
replace():-
用途:用于在字符串中替换指定的子字符串或模式。
-
语法:
string.replace(searchValue, replaceValue)。 -
参数:
searchValue:要替换的字符串或正则表达式模式。replaceValue:替换searchValue的新字符串或回调函数。
-
返回值:返回一个新字符串,其中
searchValue被替换为replaceValue。
-
-
split():-
用途:将字符串分割成子字符串数组。
-
语法:
string.split(separator, limit)。 -
参数:
separator:指定分割字符串的分隔符,可以是字符串或正则表达式。limit:可选参数,指定返回的数组的最大长度。
-
返回值:一个由分割后的子字符串组成的数组。
-
-
join():-
用途:将数组中的所有元素连接成一个字符串。
-
语法:
array.join(separator)。 -
参数:
separator:可选参数,指定连接数组元素的分隔符,默认为逗号。
-
返回值:连接后的字符串。
-
-
substring():-
用途:从字符串中提取指定范围的字符。
-
语法:
string.substring(startIndex, endIndex)。 -
参数:(范围:左闭右开[ ))
startIndex:必需,提取的起始位置,可以为负数。endIndex:可选,提取的结束位置,不包括该位置的字符,默认为字符串末尾。
-
返回值:一个新的字符串,包含从
startIndex到endIndex之间的字符。
-
-
slice():- 用途:从字符串中提取指定范围的字符,与
substring()类似。 - 语法:
string.slice(startIndex, endIndex)。 - 参数:与
substring()相同。 - 返回值:与
substring()相同。
- 用途:从字符串中提取指定范围的字符,与
-
splice():-
用途:用于向数组中添加或删除元素,并返回被删除的元素。
-
语法:
array.splice(startIndex, deleteCount, item1, item2, ...)。 -
参数:
startIndex:必需,指定开始删除或插入的位置。deleteCount:可选,指定要删除的元素个数。如果为 0,则不删除元素。item1, item2, ...:可选,要插入到数组中的元素。
-
返回值:一个包含被删除元素的数组,如果没有删除元素,则返回空数组。
-