为了账号安全,请及时绑定邮箱和手机立即绑定

使用递归在Java中反转句子而不改变字符顺序

使用递归在Java中反转句子而不改变字符顺序

泛舟湖上清波郎朗 2024-01-17 16:37:55
我使用这段代码来颠倒句子的顺序,但它所做的也是颠倒字符的顺序。请帮助我,这样字符就不会颠倒,只有单词才会颠倒。例如“猫正在跑步”-->“跑步是猫”public static void main(String[] args) {    String sentence = "Cat Is Running";    System.out.println(reverse(sentence));}public static String reverse(String str) {    if(str.isEmpty())        return str;    else {        return reverse(str.substring(1)) + str.charAt(0);        }}
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

尝试这个:

  • 你搜索最后一个空格"Cat Is Running"

  • 在第一次迭代时SpaceIndex = 6

  • 您打印空格后面的部分,"Running"然后调用递归相同的方法而无需该部分 ( "Cat Is")

  • 在最后一次迭代中,当找不到空间时,您只需输出您拥有的字符串。

public static void main(String[] args) {

   String sentence = "Cat Is Running";

   reverse(sentence);

 }


public static void reverse(String str) {

   int spaceIndex = str.lastIndexOf(" ");

   if(spaceIndex == -1){

     System.out.print(str);

     return;

   }

   System.out.print(str.substring(spaceIndex+1) + " ");

   reverse(str.substring(0,spaceIndex));

}


查看完整回答
反对 回复 2024-01-17
  • 1 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信