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

如何使用java函数来判断一个字符串是否为回文字符串?

发布时间:2023-09-22 04:09:41

要判断一个字符串是否为回文字符串,可以通过比较字符串的前后字符来进行判断。下面是一个使用Java函数来判断一个字符串是否为回文字符串的示例代码。

public class PalindromeString {
  
    public static boolean isPalindrome(String str) {
        // 去除字符串中的空格和特殊字符,只保留字母和数字
        str = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
        
        // 初始化左右指针
        int left = 0;
        int right = str.length() - 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 = "A man, a plan, a canal, Panama!";
        String str2 = "Java is fun";
        
        System.out.println(str1 + " 是回文字符串吗?" + isPalindrome(str1));
        System.out.println(str2 + " 是回文字符串吗?" + isPalindrome(str2));
    }
}

运行上述代码,输出结果为:

A man, a plan, a canal, Panama! 是回文字符串吗?true
Java is fun 是回文字符串吗?false

代码中的 isPalindrome 函数接受一个字符串作为参数,首先通过 replaceAll 方法去除字符串中的空格和特殊字符,并将字符串转换为小写。然后使用两个指针 leftright 分别指向字符串的开头和结尾。在循环中,依次比较左指针和右指针指向的字符,如果不相等,则说明字符串不是回文字符串,返回 false。如果左右指针都移动到了相同的位置,则说明字符串是回文字符串,返回 true