【问题标题】:How to return recursive method value in java如何在java中返回递归方法值
【发布时间】:2015-09-19 15:56:25
【问题描述】:

我有一个 java 类,它会调用递归方法来进行字符串替换。该方法将在一个一个替换所有需要的字符后返回字符串。但这没有按预期工作。请在下面找到代码。

public class TestingRecursion {
    private static String startRecursion(String value){
        value = value.replaceFirst("a", "b");
        if(value.contains("a"))
            startRecursion(value);
        return value;   
    }

    public static void main(String[] args) {
        String value = "1a 2a 3a 4a";

        String afterRecursion = startRecursion(value);
        System.out.println(afterRecursion);
    }
}

预期输出 - “1b 2b 3b 4b” 实际输出 - “1b 2a 3a 4a”。

【问题讨论】:

    标签: java recursion


    【解决方案1】:

    您没有使用 startRecursion 的返回值。

    第 5 行应该是:

        value = startRecursion(value);
    

    【讨论】:

      【解决方案2】:

      使用现有的线性递归逻辑,你错过的是 -

      if(value.contains("a"))
          return startRecursion(value);
      

      它将返回值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-12
        • 2013-09-14
        • 2015-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-13
        相关资源
        最近更新 更多