Java 如何将此布尔方法转换为递归方法?

Java 如何将此布尔方法转换为递归方法?,java,recursion,methods,boolean,palindrome,Java,Recursion,Methods,Boolean,Palindrome,因此,对于我的CS作业,我必须编写一个布尔方法,使用递归来确定字符串参数是否是回文。如果参数现在正向和反向读取相同的值,那么该方法应该返回true。我的代码按预期工作,但它不是递归方法,我不太确定如何使其成为递归方法。请让我知道!谢谢 public class CS142hw3 { public static void main(String[] args) { palindrome(); } static boolean palindrome() {

因此,对于我的CS作业,我必须编写一个布尔方法,使用递归来确定字符串参数是否是回文。如果参数现在正向和反向读取相同的值,那么该方法应该返回true。我的代码按预期工作,但它不是递归方法,我不太确定如何使其成为递归方法。请让我知道!谢谢

public class CS142hw3 {

    public static void main(String[] args) {
        palindrome();
    }

    static boolean palindrome() {
        String word = "kayak";
        String reverse = "";
        int len = word.length();

        for (int r = len - 1; r >= 0; r--)
            reverse = reverse + word.charAt(r);

        if (word.equals(reverse)) {
            System.out.println("True");
            return true;
        }
        else {
            System.out.println("False");
            return false;
        }
    }
}

在实现递归函数时,应定义边缘/退出条件

例如,如果输入字符串为null,则它不是回文

如果输入字符串的长度小于2,即字符串为空或仅包含一个字符,则为回文

否则,请分别使用string::charAt或string::codePointAt检查输入字符串的第一个和最后一个字符或代码点是否相等,如果剩余字符串是回文,则可以使用string::substring获取剩余字符串

示例代码:

公共静态布尔值isAlindRomestring输入{ 如果null==输入返回false; int len=input.length; 如果len<2,则返回true; 返回input.codePointAt0==input.codePointAtlen-1 &&isAlindromeinput.substring1,len-1; }
免责声明:此方法不会预处理输入字符串以将所有字符转换为同一大小写,然后删除空格和/或标点符号以检查顶部斑点等回文短语,我看到的是猫吗?etc..

取第一个字符和最后一个字符,比较两者-如果它们匹配,调用递归方法并删除它们,继续,直到字符串长度小于或等于1.huh,好主意。谢谢非常感谢。这很有帮助!