字符串的递归扩展

s55*_*chi 0 java string recursion expand function

我想创建一个方法,用另一个字符串递归扩展输入字符串.

public  class StringTest {
    public static String addZeichenkette(String out, int i)  {
        out += "bla";
        if (i > 0) {
            i--;
            addZeichenkette(out, i);
        }
        return out;
    }    

    public static void main(String[] args) {
        String out = "Hello";
        out = addZeichenkette(out, 7);
        System.out.println(out);
    }
}  
Run Code Online (Sandbox Code Playgroud)

输出应该是:

Helloblablablablablablabla
Run Code Online (Sandbox Code Playgroud)

相反它

Hellobla
Run Code Online (Sandbox Code Playgroud)

主要方法必须不受影响(方法调用除外).

Obi*_*ere 5

你忽略了递归调用的返回.

public static String addZeichenkette(String out, int i) 
{
    if (i > 0)
    {
        out += "bla";
        i--;
        out = addZeichenkette(out, i); 

    }
    return out;
}    
Run Code Online (Sandbox Code Playgroud)

或者,您可以返回结果addZeichenkette(out, i);,但两种方式都可以.


正如您所指出的,您需要对其进行修改以避免添加i+1bla.从那时起i = 0,我们不希望添加任何bla,我们需要检查这一点.

为此,我将连接bla进入了条件.