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

编写Java函数以判断字符串是否是回文

发布时间:2023-07-06 13:54:17

一个字符串称之为回文,是指这个字符串从左向右读和从右向左读是一样的。编写一个Java函数来判断给定的字符串是否是回文。

Java中的字符串是不可变的,因此我们可以使用两个指针,分别指向字符串的 个字符和最后一个字符,比较这两个字符是否相同,依次向中间移动指针,直到两个指针相遇。

以下是一个示例的Java代码来实现这个功能:

public class Palindrome {
    public static boolean isPalindrome(String str) {
        // 去除非字母和数字字符,并转换为小写
        String cleanStr = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();

        int left = 0;
        int right = cleanStr.length() - 1;

        while (left < right) {
            if (cleanStr.charAt(left) != cleanStr.charAt(right)) {
                return false;
            }
            left++;
            right--;
        }

        return true;
    }

    public static void main(String[] args) {
        String str1 = "A man, a plan, a canal, Panama";
        String str2 = "hello world";
        
        System.out.println(isPalindrome(str1)); // true
        System.out.println(isPalindrome(str2)); // false
    }
}

在这个示例中,我们首先使用正则表达式[^a-zA-Z0-9]去除字符串中的非字母和数字字符,然后将字符串转换为小写。之后,我们使用两个指针leftright指向字符串的 个字符和最后一个字符,并依次比较这两个字符是否相同。如果比较过程中发现不相同的字符,则返回false。如果一直比较到两个指针相遇,则返回true,表示字符串是回文。

main函数中,我们给出了两个示例字符串,并调用isPalindrome函数来判断它们是否是回文。运行程序后,会输出truefalse