如何在 JavaScript 中替换特定索引处的字符?


在使用 JavaScript 进行编程时,通常需要更新字符串并在特定索引处替换单个字符。JavaScript 没有像 **Java** 和 **C++** 一样包含用于替换字符串中特定索引处的单个字符的 **内置方法**,但我们可以使用其他一些内置方法并创建自定义逻辑来解决我们的问题。

在本教程中,我们有两种方法可以替换字符串中特定索引处的字符并更新字符串。一种是将字符串转换为数组,另一种是使用 JavaScript 的 **substr()** 内置方法。

  • 通过将字符串转换为数组来替换字符

  • 使用 substr() 方法

通过将字符串转换为数组来替换字符

在这种方法中,我们可以使用不同的方法将字符串转换为字符数组在 JavaScript 中。之后,用户可以通过访问字符数组的索引并使用赋值运算符轻松替换数组元素来更新字符串。

更新字符数组后,我们将使用 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>

结论

我们学习了两种通过创建自定义逻辑来替换字符串中字符的方法。这两种方法都非常简单,用户可以根据自己的喜好使用任何一种。

更新于: 2022-07-20

2K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告