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

Java中如何使用函数检查字符串是否为回文

发布时间:2023-06-15 20:00:31

回文字符串是指正序和倒序排列后都完全相同的字符串。例如,"racecar"、“level”、”madam”等都是回文字符串。在Java中,我们可以使用函数来检查一个字符串是否为回文。

要实现一个检查回文字符串的函数,我们可以采用双指针法。具体来说,我们可以定义两个指针:一个指向字符串的开头,一个指向字符串的末尾。然后,我们可以让这两个指针向中间移动,每次对比它们指向的字符是否相同,直到两个指针相遇。如果在这个过程中,所有的字符都匹配上了,那么这个字符串就是回文的。

演示代码如下所示:

public class PalindromeChecker {

    public static boolean isPalindrome(String str) {
        if(str == null) {
            return false;
        }
        int len = str.length();
        int left = 0, right = len - 1;
        while(left < right) {
            if(str.charAt(left) != str.charAt(right)) {
                return false;
            }
            left++;
            right--;
        }
        return true;
    }

    public static void main(String[] args) {
        String str1 = "racecar";
        System.out.println(str1 + " is palindrome: " + isPalindrome(str1));

        String str2 = "hello";
        System.out.println(str2 + " is palindrome: " + isPalindrome(str2));
    }
}

在上面的例子中,我们编写了一个isPalindrome函数来检查一个字符串是否为回文。首先,我们需要检查输入字符串是否为空,如果为空,则返回false。

然后,我们定义了两个指针left和right,分别指向字符串的开头和末尾。while循环会一直执行,直到left指针和right指针相遇。每次循环中,我们会对比left指向的字符和right指向的字符是否相同,如果不相同,就说明这个字符串不是回文,则直接返回false。如果所有的字符都匹配上了,则返回true。

最后,我们在main函数中演示了如何使用这个函数来检查一个字符串是否为回文。

总结:

在Java中,我们可以使用双指针法来检查一个字符串是否为回文。这种方法简单易懂、时间复杂度为O(n),可以快速地判断一个字符串是否为回文,是一个非常实用的技巧。