如何在 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>

結論

我們學習了兩種透過建立自定義邏輯來替換字串中字元的方法。這兩種方法都非常簡單,使用者可以根據自己的喜好使用任何一種。

更新於:2022年7月20日

2K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.