我想做一个递归类,它需要一个string
作为参数,并从字符串列表返回一个以参数字符串开头的行。如果找不到匹配,它应该返回“”。我似乎几乎在那里,但由于某种原因,一旦找到字符串并输入if语句,它会返回字符串,但会跳转到代码中的其他语句。换句话说,由于某种原因,它不会返回它。任何帮助真的会有所帮助。Java-在递归类中返回字符串的问题
public String getLineStartingWith(String _string){
System.out.println("GETLINESTRING: " + _string);
//place parameter string into local string
String string = _string;
//return the line from the stringlist if it starts with the
//parameter string
if(currentString.startsWith(_string)){
System.out.println("CURRENT STRING: " + currentString);
return currentString;
}
restOfList.getLineStartingWith(_string);
return "";
//return restOfList.getLineStartingWith(_string);
}
编辑
我做了一些改变,以我的代码。但由于某种原因,在它返回当前字符串后,它每次都返回restOfList.getLineStartingWith(string)。我认为它不检测它是否为空
public String getLineStartingWith(String string){
System.out.println("GETLINESTRING: " + string);
//return the line from the stringlist if it starts with the
//parameter string
if(currentString.startsWith(string)){
System.out.println("CURRENT STRING: " + currentString);
return currentString;
}
if(restOfList.isEmpty){
return "";
}
return restOfList.getLineStartingWith(string);
}
因此,我刚刚离开那里没有理由的第一部分。我的错。当你的意思是基本情况下,这是什么意思? – Splitusa
@SergioRa - 在递归中,基本情况就是你知道答案的情况。例如,在你的程序中,'if(currentString.startsWith(_string)){'部分是一个基本情况,因为你在该点递归调用函数。当你有答案时,你有一个基本的例子,当你没有答案时,你只需要一个答案。 –
好吧,我开始明白,我想。所以像这样:if(restOfList.isEmpty){return“”; }空白是一个布尔值。 – Splitusa