【问题标题】:Recursive toString for array of objects对象数组的递归 toString
【发布时间】:2020-03-03 03:44:12
【问题描述】:

我必须为对象数组编写递归 toString 方法。我了解递归的工作原理我已经在同一个程序中正确地完成了其他递归方法,我只是迷失了这个方法。此方法的输出为空白。在另一个类中还有另一个非递归 toString() 将一个 House 对象转换为 String。

    public String toString(House[] list, int n)
{
    if (n == 0)
        return "";
    else
    {
        toString(list, n-1);
        return toString(list, n-1);
    }
}

【问题讨论】:

    标签: java recursion


    【解决方案1】:

    在进行下一次调用之前,您需要累积每个元素:

    public static String toString(String[] array, int n)
    {
        if (n == 0) return "";
        else
        {
            return array[array.length - n] + toString(array, n-1);
        }
    }
    
    System.out.println(toString(new String[]{"abc", "def", "ghi"}, 3));
    

    输出:

    abcdefghi
    

    这是另一个在元素之间添加分隔符的 sn-p:

    public static String toString(String[] array, int n)
    {
        if (n == 0) return "";
        else
        {
            return array[array.length - n] + (n > 1 ? ", " : "") + toString(array, n-1);
        }
    }
    

    输出:

    abc, def, ghi
    

    【讨论】:

    • 好的,我必须正确打印循环,除了打印房屋对象而不是打印七个空值,(房屋对象数组中有七个房屋)为什么它会为房屋打印空值而不是实际信息?
    • @itsJL3 很可能你没有初始化它们。见:stackoverflow.com/questions/1922677/…
    猜你喜欢
    • 2016-06-19
    • 1970-01-01
    • 2017-02-28
    • 2016-11-03
    • 2011-06-14
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    相关资源
    最近更新 更多