递归地反转字符串

时间:2014-04-25 00:56:31

标签: java string recursion user-input

使用递归来反转字符串的简单程序。唯一的问题是我在运行程序时遇到错误。

import java.util.Scanner;
public class reverseString {

     public static String reverseTheString(String s){
         if (s.length() == 0)
            return s;
        return reverseTheString(s.substring(1) + s.charAt(0));
    }

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please enter a string to be reversed.");
        String s = keyboard.nextLine();
        reverseTheString(s);

    }
}

1 个答案:

答案 0 :(得分:1)

当字符串的长度== 1时,它将在递归调用时失败,因为在这种情况下,你仍然会在索引0和1(超出范围)处取消引用。

反转对字符串长度有意义> = 2.将地面检查更改为。