[英]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.