2014-04-25 119 views
0

使用遞歸來反轉字符串的簡單程序。唯一的問題是我運行程序時出現錯誤。遞歸地反轉字符串

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); 

    } 
} 
+0

將's.length()== 0'改爲's.length()== 1' –

回答

1

它將在遞歸調用失敗時的字符串的長度== 1,因爲在這種情況下,你仍然會在索引0和1(出界)來提領。

反向對字符串長度> = 2是有意義的。改變你的地面檢查。