无法使用其他方法或添加参数,只能递归调用该方法。我真的不明白如何解决这个问题。我有点挣扎着把我的思想集中在递归上,这对我来说是如此赤裸裸。
子字符串将包含在第一个字符和最后一个字符之间。有人可以指导我吗?除了我的基本情况之外,我知道我所掌握的内容是不正确的..我觉得我不完全理解每一步发生了什么。
public static String theSub(String str, char first, char last) {
if (str.length() == 0 ) {
return str;
}
else if (str.charAt(0)==first) {
return str.substring(1, str.length() - 1);
}
//infinite recursion..
return theSub(str,first,last);
}
“...子字符串将包含在第一个和最后一个字符之间。有人可以指导我吗?除了我的基本情况之外,我知道我所写的内容是不正确的..我觉得我不完全理解什么每一步都在进行......”
例如,如果字符串是 "f(f(f(x)))",并且您想要获得 x。
本质上,当first和last都存在时,获取substring并进行递归调用。
public static String theSub(String str, char first, char last) {
if (str.length() == 0 ) return str;
int i = str.indexOf(first), j = str.lastIndexOf(last);
if (i == -1 || j == -1) return str;
return theSub(str.substring(i + 1, j), first, last);
}