如何在 JavaScript 中替换特定索引处的字符?
在使用 JavaScript 进行编程时,经常需要更新字符串并在特定索引处替换单个字符。JavaScript 不包含像 **Java** 和 **C++** 那样用于替换字符串中特定索引处单个字符的 **内置方法**,但我们可以使用其他一些内置方法并创建自定义逻辑来解决我们的问题。
在本教程中,我们介绍了两种方法来替换字符串中特定索引处的字符并更新字符串。一种是通过将字符串转换为数组,另一种是使用 JavaScript 的 **substr()** 内置方法。
通过将字符串转换为数组来替换字符
使用 substr() 方法
通过将字符串转换为数组来替换字符
在这种方法中,我们可以使用不同的方法将字符串转换为字符数组。之后,用户可以通过访问字符数组的索引来更新字符串,并使用赋值运算符轻松替换数组元素。
更新字符数组后,我们将使用 join() 方法连接字符数组并将其转换为字符串。
将字符串转换为数组
在我们继续之前,让我们简要了解如何将字符串转换为字符数组。将字符串转换为字符数组的第一种方法是使用 split 方法。我们将使用空字符串 "" 分割字符串,这将返回字符数组。第二种方法是使用字符串和空数组的扩展运算符。
用户可以看到上述两种将字符串转换为字符数组的方法的语法。
let string = "tutorialsPoint"; let charArray = string.split(''); // convert string to array using split method. let charArray = […string] // add string with spread operator to empty array
将字符串转换为数组后,用户可以按照以下语法在特定索引处替换字符。
语法
let charArray = [...string]; // convert string to array charArray[ Index ] = 'a'; // replace character string = charArray.join(''); // join the character array to make string
参数
**索引** − 它应该在 (0, string.length-1) 范围内。这是需要替换字符的字符串索引。
示例
在下面的示例中,我们获取了一个字符串,并使用上面讨论的两种不同的方法将其转换为字符数组。接下来,我们替换了数组中的字符,并使用 String.join() 方法连接字符数组并将其转换为字符串。
<html> <head> <title>Example- replace a character at a particular index of string.</title> </head> <body> <h2>Replace a character at a particular index of string.</h2> <h4>After replacing with 'a' at 2nd index of "TutorialsPoint":</h4> <div id="result1"> </div> <h4> After replacing with 'w' at 4th index of "TutorialsPoint":</h4> <div id="result2"> </div> <script> let string = "tutorialsPoint"; // using spread operator to convert string to array let charArray = [...string]; charArray[2] = 'a'; string = charArray.join(''); document.getElementById("result1").innerHTML = string; // usign the split method to convert string to array. charArray = string.split(""); charArray[4] = 'w'; string = charArray.join(''); document.getElementById("result2").innerHTML = string; </script> </body> </html>
在上面的输出中,用户可以看到第 2 个和第 4 个索引处的字符已被替换。请确保从 0 开始计数索引。
使用 substr() 方法
在这种方法中,我们将使用 JavaScript 的 **substr()** 内置方法。substr() 方法从完整字符串返回子字符串。
语法
用户可以按照以下语法使用 substr() 方法。
let string = "hello"; let previous = string.substr(start_index,char_index); let last = string.substr(char_index + 1, string.length); string = previous + new_char + last;
参数
substr() 方法采用两个参数:
**起始索引** − 这是字符串的起始索引,在我们的例子中始终为零。
**字符索引** − 这是需要在字符串中替换字符的字符索引。
**字符串长度** − 表示字符串的长度。用户无需更改它。
**新字符** − 需要替换的字符。
用户可以按照以下算法在字符串的特定索引处替换字符。
算法
**步骤 1** − 将字符串分成两部分。
**步骤 2** − 一部分包含需要替换字符的索引之前的子字符串,另一部分包含需要替换字符的索引之后的子字符串。
**步骤 3** − 接下来,合并前一部分,后跟字符,然后是字符串的最后一部分。
**步骤 4** − 例如,要替换“hello”字符串的第 3 个索引,前一部分将变为“hel”,最后一部分将为“l”。当我们合并它时,它将变为 'hel' + 新字符 + 'l'。
示例
在下面的示例中,我们实现了上述算法,以使用 substr() 方法替换字符串中的字符。
<html> <head> <title>Example - replace a character at a particular index of string.</title> </head> <body> <h2>Replace a character at a particular index of string.</h2> <h4> After replacing 'x' at 3rd index of "hello" using substr() method:</h4> <div id="result1"></div> <script> let string = "hello"; let previous = string.substr(0, 3); let last = string.substr(4, string.length); string = previous + 'x' + last; document.getElementById("result1").innerHTML = string; </script> </body> </html>
结论
我们学习了两种通过创建自定义逻辑来替换字符串中字符的方法。这两种方法都非常简单,用户可以根据自己的喜好使用任何一种。