我被要求编写一个递归方法来反转字符串。我有一个名为Sentence
的类,其中包含一个名为text
的私有String变量。程序通过创建Sentence
对象和调用方法在单独的主类中运行。我无法更改方法的返回类型。我一直在研究这个问题并且无处可去。任何帮助或建议将不胜感激。
public void reverse() {
if (text.length() <= 1) {
return;
}
Sentence x = new Sentence(text.substring(1));
recur = text.substring(0, 1); //recur is another String variable I declared
text = x.text.concat(recur);
x.reverse();
}
答案 0 :(得分:3)
你非常接近。据我所知,如果你交换这两行,这应该有用:
text = x.text.concat(recur);
x.reverse();
此外,您应该尝试使用有意义的变量名称而不是x
和recur
。这将使其他人(以及您!)更容易理解您的代码。例如:
public void reverse() {
if (text.length() <= 1)
return;
String firstChar = text.substring(0, 1);
Sentence rest = new Sentence(text.substring(1));
rest.reverse();
text = rest.text.concat(firstChar);
}