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