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

Java函数-如何判断一个字符串是否是回文字符串?

发布时间:2023-06-25 05:56:09

一、什么是回文字符串

回文字符串是指正着读和反着读都一样的字符串,比如"level"、"racecar"等。

二、判断一个字符串是否是回文字符串的方法

1. 逐个比较

将字符串转换成字符数组,用两个指针分别指向字符数组的首尾,逐个比较字符是否相等,如果出现有字符不相等的情况,则不是回文字符串,否则就是回文字符串。

代码实现:

public static boolean isPalindrome(String s){

    char[] chars = s.toCharArray();

    int i = 0;

    int j = chars.length - 1;

    while(i < j){

        if(chars[i] != chars[j]){

            return false;

        }

        i++;

        j--;

    }

    return true;

}

2. 反转字符串比较

将字符串反转,与原字符串比较,如果相等,则是回文字符串,否则不是。

代码实现:

public static boolean isPalindrome(String s){

    String reverseS = new StringBuilder(s).reverse().toString();

    return s.equals(reverseS);

}

三、测试代码

public static void main(String[] args){

    String[] testCases = {"level", "racecar", "hello", "world", ""};

    for(String s : testCases){

        System.out.println(s + " is palindrome? " + isPalindrome(s));

    }

}

输出结果为:

level is palindrome? true

racecar is palindrome? true

hello is palindrome? false

world is palindrome? false

 is palindrome? true

四、考虑到特殊情况的判断

需要考虑到字符串为空的情况,判断方法如下:

public static boolean isPalindrome(String s){

    if(s == null || s.length() == 0){

        return true;

    }

    char[] chars = s.toCharArray();

    int i = 0;

    int j = chars.length - 1;

    while(i < j){

        if(chars[i] != chars[j]){

            return false;

        }

        i++;

        j--;

    }

    return true;

}

五、总结

判断一个字符串是否是回文字符串的方法有两种:逐个比较和反转字符串比较。需要注意的是,需要考虑到字符串为空的情况。