使用递归连接字符串

时间:2016-07-12 21:58:01

标签: java recursion

这让我整天都很头疼,我无法理解。目标是让字符串重复使用时间参数作为字符串能够重复其自身的次数。 例如:

stringTimes("Hello", 3); //should return HelloHelloHello,
stringTimes("cat", 2); //should return catcat, 
stringTimes("monkey", 0); //should return _____,

下面是我一直在使用的代码,我什么都没得到。 HELP !!!

public static String stringTimes(String theString, int times)
{   
    String adder = "";
    if (times >= 1) {
        adder += theString;
        return stringTimes(theString, times - 1);
    }
    return adder;
}   

public static void main(String[] args) {
    System.out.println(stringTimes("hello ", 8 ));
}

2 个答案:

答案 0 :(得分:2)

您的方法将进入最后一次递归调用,然后返回一个空字符串。将其更改为:

public static String stringTimes(String theString, int times)
{   
    if (times >= 1) {
        return theString + stringTimes(theString, times - 1);
    }
    return "";
}   

答案 1 :(得分:0)

这是一个简单且压缩的:

slideToggle

优点:

  • 只有一行带有简单的三元运算符。
  • 在我看来,在这种特殊情况下,一个返回语句更容易阅读。