猿问

使用递归反转字符串

我正在尝试反转java中的完整字符串


例如,Good morning输出应返回morning good.


我尝试了以下功能


public static String reverse(String s)

    {

        if (s.isEmpty())

            return s;

        //int n = 0;

        return reverse(s.substring(1)) + s.charAt(0);


    }

但上面的函数正在转换good morning成gninrom doog. 我的代码适用于每个字符,我如何让它适用于单词。任何提示或指南/解释将不胜感激。


我已经回答过这个问题但没有解决我的问题


泛舟湖上清波郎朗
浏览 87回答 2
2回答

慕莱坞森

首先,您需要知道空间在哪里。public static String reverse(String str) {   int space = str.indexOf(" ");   return space == -1 ? str : reverse(str.substring(space + 1)) + " " + str.substring(0, space);}

森林海

这可能不是最有效的方法,但它确实有效:public static String reverse(String s) {&nbsp; &nbsp; String[] wordList;&nbsp; &nbsp; wordList = s.split(" ");&nbsp; &nbsp; String reverseWordList = "";&nbsp; &nbsp; for (int i = 1; i <= wordList.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; reverseWordList += wordList[wordList.length - i] + " ";&nbsp; &nbsp; }&nbsp; &nbsp; reverseWordList = reverseWordList.trim();&nbsp; &nbsp; return reverseWordList;}
随时随地看视频慕课网APP

相关分类

Java
我要回答