Java - 使用递归一次打印一个字符

时间:2015-05-12 05:10:44

标签: java recursion newline

我尝试从字符串递归打印一个字符,例如:

    a
    va
    ava
    Java
     Java
    o Java
    lo Java
    llo Java
    ello Java
    Hello Java

但我的代码如下:

    public static String displayStuffR(String x){
        return displayStuffR(0,x);
        }
    public static String displayStuffR(int i,String x){
        if (i<x.length()){
            return x.substring(x.length()-1-i) + displayStuffR(i+1,x);}
        return x;
    }
    public static void main(String args[]){
       System.out.print(displayStuffR("Hello Java"));
     }

显示器:

   avaavaJava Javao Javalo Javallo Javaello JavaHello JavaHello Java

很感激帮助

3 个答案:

答案 0 :(得分:1)

当你返回一个字符串时,使用new line作为显示函数返回的字符串,如下所示

return x.substring(x.length()-1-i)+"\n" + displayStuffR(i+1,x);

并将if条件更新为

i < x.length()-1

答案 1 :(得分:1)

man page起,您需要在代码中添加"\n",将换行符添加到字符串中 请参阅以下代码:

public static String displayStuffR(String x){
    return displayStuffR(0,x);
    }
public static String displayStuffR(int i,String x){
    if (i < (x.length()-1)){
        return x.substring(x.length()-1-i)+"\n" + displayStuffR(i+1,x);}
    return x;
}
public static void main(String args[]){
   System.out.print(displayStuffR("Hello Java"));
 }

答案 2 :(得分:0)

或者,您可以使用此方法。

static void  recursivePrint(String text) {
    if (text.length() == 0)
        return;

    recursivePrint(text.substring(1, text.length()));
    System.out.println(text);
}