如何在 TypeScript 中反轉字串?


本教程演示了在 TypeScript 中反轉字串的多種方法。起初,反轉字串問題看起來很簡單,但如果有人讓你解釋在 TypeScript 中反轉字串的不同方法呢?例如,如果面試官要求反轉字串的單詞而不是反轉字串的每個字元呢?

在這裡,我們將學習如何在 TypeScript 中反轉字串的每個字元或單詞。

使用 for-of 迴圈在 TypeScript 中反轉字串

反轉字串的樸素方法使用普通的 for 迴圈或 for-of 迴圈。在這裡,我們將使用 for-of 迴圈迭代字串,因為字串是可迭代的。之後,我們可以將字串的每個字元追加到反轉字串的開頭。

語法

這裡,我們給出了使用 for-of 迴圈在 TypeScript 中反轉字串的語法。

let str = "String to reverse!"
let reverseString = "";
for (let char of str) {
   reverseString = char + reverseString;
}

演算法

  • 步驟 1 − 定義字串變數並用字串值初始化它。

  • 步驟 2 − 定義型別為字串的反轉字串變數以儲存反轉字串,並用空字串初始化它。

  • 步驟 3 − 使用 for-of 迴圈迭代字串的每個字元。

  • 步驟 4 − 將字串的每個字元追加到反轉字串變數的開頭。

  • 步驟 5 − 當 for 迴圈迭代完成時,我們可以得到儲存在反轉字串變數中的反轉字串。

示例 1

在這個例子中,我們只是簡單地實現了上述演算法來使用 for-of 迴圈反轉字串。在輸出中,使用者可以觀察到 for-of 迴圈迭代完成後反轉字串變數的值,即反轉後的字串。

// Defining the string variable
let str: string = "Hello Users! Reverse this string!";

// variable to store reveresd string
let reverseString: string = "";

// Iterating through the string
for (let char of str) {

   // append every character of string to the start of the reverseString
   reverseString = char + reverseString;
}
console.log("The original string is " + str);
console.log("The reversed string is " + reverseString);

編譯後,它將生成以下 JavaScript 程式碼:

// Defining the string variable
var str = "Hello Users! Reverse this string!";

// variable to store reveresd string
var reverseString = "";

// Iterating through the string
for (var _i = 0, str_1 = str; _i < str_1.length; _i++) {
   var char = str_1[_i];
   // append every character of string to the start of the reverseString
   reverseString = char + reverseString;
}
console.log("The original string is " + str);
console.log("The reversed string is " + reverseString);

輸出

以上程式碼將產生以下輸出:

The original string is Hello Users! Reverse this string!
The reversed string is !gnirts siht esreveR !sresU olleH

在 TypeScript 中反轉字串的每個單詞

現在,我們將學習如何反轉字串的每個單詞而不是整個字串。這個問題比上面那個問題高一個層次,如果面試官想讓面試更有趣或想知道你的解決問題的能力,他們可能會問這個問題而不是上面的那個問題。

在 TypeScript 中,我們不能使用 reverse 方法反轉字串。因此,我們將字串轉換為字元陣列並使用 reverse() 方法反轉字元陣列。在這裡,我們將使用一些內建庫方法,如 split()、join()、map() 和 reverse() 來反轉字串的每個單詞。

語法

這裡,我們給出了在 TypeScript 中反轉字串每個單詞的語法。

let str1: string = "Reverse the every word of this string!";
let words: Array<string> = str1.split(" ");
let reversedWords: Array<string> = words.map((word) => {
   let charArray: Array<string> = word.split("");
   charArray.reverse();
   let reversed: string = charArray.join("");
   return reversed;
});
let reverseString: string = reversedWords.join(" ");

演算法

  • 步驟 1 − 使用 split() 方法並將字串與空格作為 split() 方法的引數傳遞,以從字串中建立每個單詞的陣列。

  • 步驟 2 − 要反轉每個單詞,請使用 map() 方法,該方法將回調函式作為引數並返回反轉的單詞。

  • 步驟 3 − 在 map 方法的回撥函式內部,將單詞拆分為字元陣列並將其儲存在 charArray 變數中。

  • 步驟 4 − 現在,使用 reverse() 方法反轉 charArray。

  • 步驟 5 − 接下來,使用 join() 方法連線 charaArray,並將結果字串儲存在 reversed 變數中。

  • 步驟 6 − 返回包含反轉單詞的 reversed 變數。

  • 步驟 7 − reverseWords 變數包含反轉單詞的陣列;要將其變成一個字串,請使用 join() 方法。

示例 2

在下面的示例中,我們獲取了一個字串並透過應用上述演算法反轉了該字串的每個單詞。在輸出中,我們可以觀察到我們的演算法反轉了單獨的單詞而不是反轉整個字串。

// String to reverse every word
let str1: string = "Reverse the every word of this string!";

// split string into words
let words: Array<string> = str1.split(" ");

// reverse every word of the words array
let reversedWords: Array<string> = words.map((word) => {

   // split the word into an array of character
   let charArray: Array<string> = word.split("");
   
   // reverse the character array
   charArray.reverse();
   
   // join the character array to make it word again
   let reversed: string = charArray.join("");
   
   // return the reversed word
   return reversed;
});
// join the array of words to make it one string
let reverseString: string = reversedWords.join(" ");
console.log("The normal string is " + str1);
console.log("The string after reversing the every word is " + reverseString);

編譯後,它將生成以下 JavaScript 程式碼

// String to reverse every word
var str1 = "Reverse the every word of this string!";

// split string into words
var words = str1.split(" ");

// reverse every word of the words array
var reversedWords = words.map(function (word) {

   // split the word into an array of character
   var charArray = word.split("");
   
   // reverse the character array
   charArray.reverse();
   
   // join the character array to make it word again
   var reversed = charArray.join("");
   
   // return the reversed word
   return reversed;
});
// join the array of words to make it one string
var reverseString = reversedWords.join(" ");
console.log("The normal string is " + str1);
console.log("The string after reversing the every word is " + reverseString);

輸出

以上程式碼將產生以下輸出:

The normal string is Reverse the every word of this string!
The string after reversing the every word is esreveR eht yreve drow fo siht !gnirts

在本教程中,使用者學習了使用 for-of 迴圈反轉字串的樸素方法。使用者還學習瞭如何反轉字串的每個單詞。但是,他們也可以實現第二種方法來使用 for-of 迴圈而不是內建方法來反轉字串。

更新於:2023-01-03

10K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.