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

标签 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

不胜感激

最佳答案

当你当时返回一个字符串时,为显示函数中返回的字符串使用新行,如下所示

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

并将您的 if 条件更新为

i < x.length()-1

关于Java - 使用递归一次打印一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30182261/

相关文章:

java - 如何查找两个 JSON 文件中的差异并打印出现差异的行号

java - 如何使用 java 仅获取 mongodb 中文档的 objectId

algorithm - 是 log(n!) = Θ(n·log(n))?

c - 递归函数中的堆栈溢出(C语言)

c - 用 C 中的 LF 替换 CR LF

javascript - 使用 JQuery .val() 清除文本区域后如何删除多余的换行符

JAVA访问json字符串

java - 使用底部导航栏

c++ - 递归下降解析和语法树

Python 3打印到文件创建错误的新行