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

Java函数实现:如何检查一个字符串是否是回文?

发布时间:2023-07-06 06:49:58

要检查一个字符串是否是回文,可以使用以下方法实现:

方法一:利用双指针

1. 首先,定义两个指针left和right,指向字符串的首尾字符;

2. 通过循环判断条件,当left小于等于right时,执行以下步骤:

   a. 检查left指向的字符是否和right指向的字符相等,如果不相等,则该字符串不是回文,返回false;

   b. 如果相等,则将left指针向右移动一位,将right指针向左移动一位,继续进行下一次循环;

3. 循环结束后,如果没有返回false,就说明该字符串是回文,返回true。

方法二:利用字符串反转

1. 定义一个字符串变量reverse,将要判断的字符串反转存入reverse中;

2. 判断反转后的字符串reverse是否和原字符串相等,如果相等则为回文,返回true;否则不是回文,返回false。

以上是两种常用的方法,我们将它们封装成一个函数如下:

public static boolean isPalindrome(String str) {

    // 方法一:双指针

    int left = 0;

    int right = str.length() - 1;

    while (left <= right) {

        if (str.charAt(left) != str.charAt(right)) {

            return false;

        }

        left++;

        right--;

    }

    

    // 方法二:字符串反转

    String reverse = new StringBuilder(str).reverse().toString();

    if (str.equals(reverse)) {

        return true;

    } else {

        return false;

    }

}

调用该函数:

boolean result = isPalindrome("madam");

System.out.println(result); // 输出true

注意:上述代码中字符串的比较,可以使用equals()方法进行比较,而不是使用==运算符,因为==比较的是引用地址是否相等,不比较字符串的内容。