递归判断字符串是否为回文
源代码
package test; import java.util.Scanner; public class Palindrome { public static void main(String[] args) { System.out.println("请输入判断的字符串"); Scanner scan=new Scanner(System.in); String str=scan.next(); int n = str.length(); boolean flag=dg(str,0); if(flag) { System.out.println("该字符串是回文"); } else { System.out.println("该字符串不是回文"); } } public static boolean dg(String str,int i) { int n=str.length(); if(n-i==0||n-i==1) { return true; } else { if(str.charAt(i)==str.charAt(n-i-1)) { return dg(str,i+1); } return false; } } }
设计思路:
在主函数里,输出提示语来引导用户输入字符串,定义n等于字符串的长度,
定义一个递归函数,初始化字符串和整数i,如果字符串的长度减去i等于0或1即所剩的需判断的字符长度为0或1,那么返回true,为回文。如果第i个字符和第n-i个字符相等,那么进行递归继续判断。
运行截图: