使用递归和子字符串方法

时间:2016-09-17 22:53:17

标签: java recursion substring

我目前无法解决我的代码及其问题。我正在尝试创建一个方法,使用递归和使用子字符串向后显示字符串。例如,如果我把“10 ten”作为我的论点,它应该反转单词并重复3次字母。

它将显示如下: nnneeettt

以下是我的方法的一部分,侧重于该部分。

public static String method3(Integer num,String line)
   {
   	   //base case
      if (line.length() == 1)
      	  //return line + line + line;
         return line.substring(line.length()) + line.substring(line.length()) + line.substring(line.length());
      	//recursive case	
      else{
      
         return method3(num,line.substring(1)) + line.charAt(0) + line.charAt(0) + line.charAt(0);
      }
   }//end of else

我的输出显示了这个:

nnnee

它又错过了一次 “e”和最后3个“t”

编辑:

这是我的第二种方法“10十”重复两次而不是三次而不是反转

public static String method2(Integer num, String line)
   {
   	   //base case
      if(line.length() == 1)
         return line + line;
      		
      	//recursive case
      else{
         return line.substring(0,1) + line.substring(0,1)
                   + method2(num,line.substring(1,line.length()));
      }//end of else
   }//end of method2

输出: tteenn

1 个答案:

答案 0 :(得分:2)

这是一种方法:

private static String reverse(String string) {
    if(string.length() == 1)
        return string + string + string;

    else 
        return reverse(string.substring(1)) + string.charAt(0) + string.charAt(0) + string.charAt(0);
}