如何在 TypeScript 中反转字符串?

typescriptserver side programmingprogramming

本教程演示了在 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 变量的值,即反转后的字符串。

// 定义字符串变量
let str: string = "Hello Users! Reverse this string!";

// 用于存储反转字符串的变量
let reverseString: string = "";

// 遍历字符串
for (let char of str) {

   // 将字符串的每个字符附加到 reverseString 的开头
   reverseString = char + reverseString;
}
console.log("The original string is " + str);
console.log("The reversed string is " + reverseString);

编译后,它将生成以下 JavaScript 代码 -

// 定义字符串变量
var str = "Hello Users! Reverse this string!";

// 用于存储反转字符串的变量
var reverseString = "";

// 遍历字符串
for (var _i = 0, str_1 = str; _i < str_1.length; _i++) {
   var char = str_1[_i];
   // 将字符串的每个字符附加到 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() 方法连接 charArray,并将结果字符串存储在反转的变量。

  • 步骤 6 - 返回包含反转单词的 reversed 变量。

  • 步骤 7 - reverseWords 变量包含反转单词的数组;要将其合并为一个字符串,请使用 join() 方法。

示例 2

在下面的示例中,我们获取了一个字符串,并应用上述算法反转了该字符串中的每个单词。在输出中,我们可以观察到我们的算法反转了单个单词,而不是反转整个字符串。

// 反转每个单词的字符串
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(" ");
console.log("The normal string is " + str1);
console.log("The string after reversing the every word is " + reverseString);

编译后,将生成以下 JavaScript 代码:

// 反转每个单词的字符串
var str1 = "Reverse the every word of this string!";

// 拆分字符串为单词
var words = str1.split(" ");

// 反转 words 数组中的每个单词
var reversedWords = words.map(function (word) {

    // 将单词拆分为字符数组
    var charArray = word.split("");
    
    // 反转字符数组
    charArray.reverse();
    
    // 连接字符数组使其重新变为单词
    var reversed = charArray.join("");
    
    // 返回反转后的单词
    return reversed;
});
// 连接单词数组使其成为一个字符串
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 循​​环(而不是内置方法)反转字符串。


相关文章