Java - 使用递归一次打印一个字符
Java - printing one character at a time using recursion
我正在尝试从字符串中递归地一次打印一个字符,例如:
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
不胜感激
当你 return 一个字符串时,使用新行作为字符串 return 在显示函数中编辑是这样的
return x.substring(x.length()-1-i)+"\n" + displayStuffR(i+1,x);
并将您的 if 条件更新为
i < x.length()-1
从 http://ideone.com/I5XgXK 开始,您需要通过在代码中添加 "\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"));
}
或者,您可以使用此方法。
static void recursivePrint(String text) {
if (text.length() == 0)
return;
recursivePrint(text.substring(1, text.length()));
System.out.println(text);
}
我正在尝试从字符串中递归地一次打印一个字符,例如:
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
不胜感激
当你 return 一个字符串时,使用新行作为字符串 return 在显示函数中编辑是这样的
return x.substring(x.length()-1-i)+"\n" + displayStuffR(i+1,x);
并将您的 if 条件更新为
i < x.length()-1
从 http://ideone.com/I5XgXK 开始,您需要通过在代码中添加 "\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"));
}
或者,您可以使用此方法。
static void recursivePrint(String text) {
if (text.length() == 0)
return;
recursivePrint(text.substring(1, text.length()));
System.out.println(text);
}