跳到主要内容

JavaScript程序检查字符串是否为回文

要理解这个示例,你应该具备以下 JavaScript 编程 主题的知识:

如果一个字符串从前向后读和从后向前读都相同,那么这个字符串就是回文。例如,dad 无论从前向后还是从后向前读都是相同的。所以单词 dad 是一个回文。同样,madam 也是回文。

示例 1:使用 for 循环检查回文

// 程序检查字符串是否为回文

function checkPalindrome(string) {
// 计算字符串的长度
const len = string.length;

// 循环遍历字符串的一半
for (let i = 0; i < len / 2; i++) {
// 检查第一个和最后一个字符串是否相同
if (string[i] !== string[len - 1 - i]) {
return "这不是一个回文";
}
}
return "这是一个回文";
}

// 获取输入
const string = prompt("输入一个字符串:");

// 调用函数
const value = checkPalindrome(string);

console.log(value);

输出

输入一个字符串:madam
这是一个回文

在上述程序中,checkPalindrome() 函数从用户那里获取输入。

  • 使用 length 属性计算字符串的长度。
  • for 循环用于遍历字符串的一半。if 条件用于检查第一个和相应的最后一个字符是否相同。这个循环一直持续到字符串的一半。
  • 在迭代过程中,如果字符串的任何字符与其对应的最后一个字符串不相等,则该字符串不被视为回文。

示例 2:使用内置函数检查回文

// 程序检查字符串是否为回文

function checkPalindrome(string) {
// 将字符串转换为数组
const arrayValues = string.split("");

// 反转数组中的值
const reverseArrayValues = arrayValues.reverse();

// 将数组转换为字符串
const reverseString = reverseArrayValues.join("");

if (string == reverseString) {
console.log("这是一个回文");
} else {
console.log("这不是一个回文");
}
}

// 获取输入
const string = prompt("输入一个字符串:");

checkPalindrome(string);

输出

输入一个字符串:hello
这不是一个回文

在上述程序中,使用 JavaScript 的内置方法检查字符串是否为回文。

  • split('') 方法将字符串转换为单个数组字符。
const arrayValues = string.split(""); // ["h", "e", "l", "l", "o"]
  • reverse() 方法反转数组中的位置。
// ["o", "l", "l", "e", "h"]
const reverseArrayValues = arrayValues.reverse();
  • join('') 方法将数组的所有元素连接成一个字符串。
const reverseString = reverseArrayValues.join(""); // "olleh"
  • 然后使用 if...else 语句检查字符串和反转后的字符串是否相等。如果它们相等,那么这个字符串是回文。

注意:多行代码可以缩减并写成一行:

const reverseString = string.split("").reverse().join("");