java 函数返回值为String要求递归

public static String invert(String str, int i)
{ //尾递归,作用是把“12345”转换为“54321”

if(i>1)
{
return str.substring((i-1),i) + invert(str,--i);
}
if(i==1)
{
return str.substring(0,1);
}
}
}

我觉得subtring返回的是字符串,因此相加应该也是字符串,为什么编译器提示返回值不是字符串?

不是返回值不是字符串,而是你的if条件不全,添加一个return 就好了。代码修改如下:
public static String invert(String str, int i){ //尾递归,作用是把“12345”转换为“54321”

if(i>1){
return str.substring((i-1),i) + invert(str,--i);
}
if(i==1){
return str.substring(0,1);
}
return "";
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-13


// 修改、 调用的例子


~