2

我被要求编写一个递归方法来反转一个字符串。我有一个名为的类,其名称Sentence为私有字符串变量textSentence通过创建对象和调用方法,程序在单独的主类中运行。我无法更改方法的返回类型。我已经为此工作了一段时间,但一无所获。任何帮助或建议将不胜感激。

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();
}
4

1 回答 1

3

你很接近。据我所知,如果您交换这两行,这应该可以工作:

text =  x.text.concat(recur);
x.reverse();

此外,您应该尝试提出有意义的变量名而不是xand 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);
}
于 2012-09-23T17:44:37.093 回答