字符串反转使用递归w \ o参数

时间:2012-09-23 17:21:24

标签: java string recursion

我被要求编写一个递归方法来反转字符串。我有一个名为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();
}

1 个答案:

答案 0 :(得分:3)

你非常接近。据我所知,如果你交换这两行,这应该有用:

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

此外,您应该尝试使用有意义的变量名称而不是xrecur。这将使其他人(以及您!)更容易理解您的代码。例如:

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