如何在 TypeScript 中逆转字符串
本教程演示了TypeScript中逆转字符串的多种方法。起初,反转字符串问题看起来很容易,但如果有人要求你解释在TypeScript中反转字符串的不同方法呢?例如,如果面试官要求反转字符串的单词,而不是反转字符串的每个字符,怎么办?
在这里,我们将学习在TypeScript中逆转字符串的每个字符或单词。
在TypeScript中使用for-of循环来反转一个字符串
逆转字符串的天真方法是使用普通的for循环或for-of循环。这里,我们将使用for-of循环来迭代字符串,因为字符串是可迭代的。之后,我们可以在反转后的字符串的开头追加字符串的每个字符。
语法
在这里,我们给出了在TypeScript中使用for-of循环来反转字符串的语法。
let str = "String to reverse!"
let reverseString = "";
for (let char of str) {
reverseString = char + reverseString;
}
算法
- 第1步 – 定义字符串变量,并用字符串值初始化它。
-
第2步–定义字符串类型的reverseString变量来存储反转的字符串,并以空字符串初始化它。
-
第3步 – 使用for-of循环遍历字符串的每个字符。
-
第4步–在reverseString变量的开头追加字符串的每个字符。
-
第5步 – 当for循环的迭代完成后,我们可以得到存储在reverseString变量中的反转字符串。
示例 1
在这个例子中,我们简单地实现了上述算法,用for-of循环来反转一个字符串。在输出中,用户可以观察到for-of循环迭代完成后reverseString变量的值,这就是反转的字符串。
// 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);
// 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()方法来逆转字符数组。在这里,我们将使用一些内置的库方法,如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,并将结果字符串存储在反转变量中。
-
第6步 – 返回包含反转词的反转变量。
-
第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循环而不是内置方法来反转字符串。