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

在此示例中,您将学习编写一个JavaScript程序来检查字符串是否为回文。

如果从正向或反向读取字符串,则该字符串为回文。例如, 爸爸从向前或向后读取相同内容。所以爸爸这个词是回文。同样, 女士也是回文。


示例1:使用for循环检查回文
// program to check if the string is palindrome or not

function checkPalindrome(str) {

    // find the length of a string
    let len = string.length;

    // loop through half of the string
    for (let i = 0; i < len / 2; i++) {

        // check if first and last string are same
        if (string[i] !== string[len - 1 - i]) {
            return 'It is not a palindrome';
        }
    }
    return 'It is a palindrome';
}

// take input
let string = prompt('Enter a string: ');

// call the function
let value = checkPalindrome(string);

console.log(value);

输出

Enter a string: madam
It is a palindrome

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

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

示例2:使用内置函数检查回文
// program to check if the string is palindrome or not

function checkPalindrome(str) {

    // convert string to an array
    let arrayValues = string.split('');

    // reverse the array values
    let reverseArrayValues = arrayValues.reverse();

    // convert array to string
    let reverseString = reverseArrayValues.join('');

    if(string == reverseString) {
        console.log('It is a palindrome');
    }
    else {
        console.log('It is not a palindrome');
    }
}

//take input
let string = prompt('Enter a string: ');

checkPalindrome(string);

输出

Enter a string: hello
It is not a palindrome

在上面的程序中,使用JavaScript中可用的内置方法检查回文。

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

注意 :可以减少多行代码,并在一行中编写:

let reverseString = string.split('').reverse().join('');

总计 0 评论

发表评论

作为 登录 | 登出 »

联系电话

18321263196

交换链接

互相学习

服务咨询

我的微信