猿问

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

我使用这段代码来颠倒句子的顺序,但它所做的也是颠倒字符的顺序。请帮助我,这样字符就不会颠倒,只有单词才会颠倒。例如“猫正在跑步”-->“跑步是猫”


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

    }

}


泛舟湖上清波郎朗
浏览 91回答 1
1回答

慕盖茨4494581

尝试这个:你搜索最后一个空格"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));}
随时随地看视频慕课网APP

相关分类

Java
我要回答