簡體   English   中英

如何在Java中返回遞歸方法值

[英]How to return recursive method value in java

我有一個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”。

您沒有使用startRecursion的返回值。

第5行應為:

    value = startRecursion(value);

使用現有的線性遞歸邏輯,您錯過的是-

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

它將返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM