利用递归思想:将字符串分为 1~N-1 个和第 N 个两部分,用N+(1~N-1)进行反转;
再将1~N-1分为 1~N-2 个和第 N-1 个两部分,用N+(1~N-2)进行反转;
再将1~N-1分为 1~N-2 个和第 N-1 个两部分,用N+(1~N-2)进行反转;
......
以此类推,进行递归
这是递归方法:
1.递归公式为:N+reverse(N-1) ;注意N是字符,需要用到charAt()。
2.递归出口,当到了第0个位置的字符时,就不需要在反转了,直接打印即可。
1.递归公式为:N+reverse(N-1) ;注意N是字符,需要用到charAt()。
2.递归出口,当到了第0个位置的字符时,就不需要在反转了,直接打印即可。
static String reverse(String src,int end){ if(end == 0){ return ""+src.charAt(0);//此为递归出口 } return src.charAt(end)+reverse(src,end-1);//次卫递归公式 }
主函数利用键盘输入字符串,因为字符串从0开始标位置的,所以需要用到 length-1
public static void main(String[] args){ Scanner scan = new Scanner(System.in); String src = scan.next();//键盘输入一个字符串 System.out.println(reverse(src,src.length()-1));//注意end范围,以防数组越界 }