gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 03:52:45 24 4
gpt4 key购买 nike

测试器类是:

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() 实际上返回一个 String,而不是 void,以便您可以使用反转的结果。因此,在方法声明中将 void 更改为 String。然后,您需要在方法内使用几个 return 语句 - 一个用于基本情况,一个用于递归情况。

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

return shorter.reverse() + first;

也就是说,您采用较短句子的相反方式,并将第一个字符放回末尾。

在基本情况下,即方法的输入为 "",您可以直接编写

return "";

我将让您自行决定在方法逻辑中的何处插入这两个 return 语句。祝你好运。

关于java - 使用 void reverse() 方法递归反转句子 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23985547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com