使用String进行递归

时间:2015-09-23 08:59:52

标签: java recursion

public static String repeater(int x, String word) {
   if (x > 0) {
       System.out.print(word.charAt(0));
   }

   if (x == 0) {
       return "";
   } else {
       return repeater(number-1, x);
   }

这段代码给了我想要的输出,它基本上是字符串的第一个字母并打印'x'次:

示例:

when my 
String = Hello 
and x = 6

HHHHHH

我的问题是我希望这种方法以相同的方式工作,但不使用'System.out.print()'行。我是否需要添加第二个字符串?如果没有,我应该采取什么方法?

2 个答案:

答案 0 :(得分:3)

好的,我发现你需要它是递归的。

public static String repeater(int x, String word) {
    if (x == 0) {
        return "";
    } else {
        return word.charAt(0) + repeater(x - 1, word);
    }
}

这是怎么回事?

为了理解这种递归,它的工作方式类似于数学的嵌套括号。

"H" + ("H" + ("H" + ("H" + ("H" + ("H" + (""))))))

答案 1 :(得分:0)

是的,你可以添加第二个字符串。而不是" System.out.print"您可以将word.charAt(0)的值赋给该变量。

伪代码 -

String output="";

转发器方法中的代码行

output=output+convert.tostring(word.charAt(0))

即:

String output="";
public static void repeater(int x, String word) {
  if (x > 0) {
    output += convert.toString(word.charAt(0));
 }

 if (x == 0) {
   return;
 } else {
   repeater(number-1, x);
 }
}