欢迎访问宙启技术站
智能推送

Java函数:如何判断给定的字符串是否为回文?

发布时间:2023-06-13 23:12:28

回文是指正着和倒着读都一样的单词、短语或数字序列,比如“level”、“radar”、“121”等。在Java程序中,我们可以编写一个函数来判断给定的字符串是否为回文。下面是一个简单的实现方法:

public static boolean isPalindrome(String str) {

    // 将字符串全部转换为小写字母

    str = str.toLowerCase();

    // 将字符串转换为字符数组

    char[] chArr = str.toCharArray();

    // 定义左右两个指针

    int left = 0, right = chArr.length - 1;

    while (left < right) {

        // 如果左右两个字符不相等,则不是回文

        if (chArr[left] != chArr[right]) {

            return false;

        }

        // 左右指针向中间移动

        left++;

        right--;

    }

    // 如果全部字符都匹配,那么是回文

    return true;

}

这个函数接收一个字符串作为参数,首先将字符串全部转换为小写字母,然后将字符串转换为字符数组。我们定义左右两个指针,分别从字符串的开头和结尾开始扫描,每次比较左右两个指针所指的字符是否相等。如果不相等,则说明不是回文,直接返回false。否则,左右指针向中间移动,继续比较下一个字符。当左右指针相遇时,说明全部字符都匹配,是回文,返回true。这个算法的时间复杂度是O(n/2),空间复杂度是O(n),其中n是字符串的长度。

测试代码如下:

public static void main(String[] args) {

    System.out.println(isPalindrome("level")); // true

    System.out.println(isPalindrome("LeVel")); // true

    System.out.println(isPalindrome("12321")); // true

    System.out.println(isPalindrome("radar")); // true

    System.out.println(isPalindrome("hello")); // false

}

运行结果如下:

true

true

true

true

false

我们可以看到,这个函数能够正确地判断给定的字符串是否为回文。在实际开发中,我们可以利用这个函数来解决一些实际问题,比如判断用户输入的密码是否为回文,或者判断一个文本是否为回文。