dartempler1
dartempler1

Reputation: 23

Java - printing one character at a time using recursion

I'm trying to print one character at a time from a string recursively such as:

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

But my code below:

    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"));
     }

Displays:

   avaavaJava Javao Javalo Javallo Javaello JavaHello JavaHello Java

Much help would be appreciated

Upvotes: 2

Views: 1831

Answers (2)

niyasc
niyasc

Reputation: 4490

Alternatively, you may use this method.

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

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

Upvotes: 0

Vinayak Pingale
Vinayak Pingale

Reputation: 1315

When you return a string at that time use new line for the string returned in display function something like this

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

and update your if condition to

i < x.length()-1

Upvotes: 1

Related Questions