Reputation: 23
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
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
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