使用void reverse()方法递归反转句子(Java)

使用void reverse()方法递归反转句子(Java),java,Java,测试仪类别为: public class SentenceWithReverseTester { public static void main(String[] args) { String[] list = new String[]{"aba", "Madam, I'm Adam", "nut",

测试仪类别为:

public class SentenceWithReverseTester
{
    public static void main(String[] args) 
    {
        String[] list = new String[]{"aba", 
                                     "Madam, I'm Adam", 
                                     "nut", 
                                     "A man, a plan, a canal, Panama", 
                                     "wonderful", 
                                     "Go hang a salami, I'm a lasagna hog", 
                                     "race car", 
                                     "1", 
                                     "", 
                                     "zero", 
                                     "@!:"} ;
        for (String line : list) {
            SentenceWithReverse sentence = new SentenceWithReverse(line) ;
            sentence.reverse() ;
            System.out.println(line + "       reversed becomes........") ;
            System.out.println(sentence.toString()) ;
            System.out.println("----------------------------") ;
        }
    }
}
对于相反的方法,我有:

public void reverse()
{
    String s = super.toString();
    if(s.length() > 0)
    {
        String first = s.substring(0,1);
        String remaining = s.substring(1, s.length());
        SentenceWithReverse shorter = new SentenceWithReverse(remaining);
        shorter.reverse();
        System.out.println(shorter + first);
    }
}

我没有得到我想要的结果,我也不确定我在这里做错了什么。

您没有在
reverse
方法中分配任何成员字段。您没有显示您有哪些字段,但我猜您有一个从
toString
返回的字符串字段。您应该将
shorter+first
分配给您有
System.out.println
调用的位置。

您应该使
反向()
实际返回一个
字符串,而不是
void
,以便您可以使用反向的结果。因此,在方法的声明中将
void
更改为
String
。然后,您需要在方法中使用两个
return
语句—一个用于基本情况,另一个用于递归情况

在递归情况下,
return
语句类似于

return shorter.reverse() + first;
也就是说,你取较短句子的反面,把第一个字符放回末尾

在基本情况下,即方法的输入为
,您只需编写

return "";
我将让您在方法的逻辑中找出在何处插入这两个
return
语句。祝你好运。

你得到了什么结果?它们与你所说的有什么不同?请提供一个例子。