用递归实现判断一个字符串是否是回文的方法

来源:互联网 发布:c语言手势识别算法 编辑:程序博客网 时间:2024/06/04 19:07
import java.util.Arrays;


public class RecursionTest {

public boolean palindromeJudge(String str){

//当字符串长度为1,或者为空字符串就认为是回文,这个作为已知点,长的字符串要向这个方向追溯。这也是递归的终止条件之一

if(str.length()==1||str.length()==0){
     return true;
}else if(str.charAt(0)==str.charAt(str.length()-1)){
   String strShort=stringCut(str);//把字符串第一个和最后一个字符截掉
    return palindromeJudge(strShort);//调用自身再进行比较
}else{//递归的终止条件之二:字符串的第一个字符和倒数第一个不相等的情况,直接返回false
    return false;
}
}

//把字符串第一个和最后一个字符截掉

public static String stringCut(String str){
    if(str==null||"".equals(str)){
         return "";
     }
       char[] src=str.toCharArray();
     char[] dst=Arrays.copyOfRange(src, 1,src.length-1);
      return String.valueOf(dst);

}


public static void main(String[] args) {
       RecursionTest test=new RecursionTest();
       System.out.println(test.palindromeJudge("aaaaaa5aaaaaaa"));
       }
}
1 0