首頁>Program>source

谁能告诉我如何編寫Java程式来反轉给定的句子?

例如,如果輸入為:

"This is an interview question"

輸出必须為:

"question interview an is this"

最新回復
  • 5月前
    1 #

    您將字元串按空格分開,然後向後遍歷,以組合反向句。

    String[] words =  "This is interview question".split(" ");
    String rev = "";
    for(int i = words.length - 1; i >= 0 ; i--)
    {
       rev += words[i] + " ";
    }
    // rev = "question interview is This "
    // can also use StringBuilder:
    StringBuilder revb = new StringBuilder();
    for(int i = words.length - 1; i >= 0 ; i--)
    {
       revb.append(words[i]);
       revb.append(" ");
    }
    // revb.toString() = "question interview is This "
    

  • 5月前
    2 #

    String[] words = sentence.split(" ");
    String[] reversedWords = ArrayUtils.reverse(words);
    String reversedSentence = StringUtils.join(reversedWords, " ");
    

    (使用 ArrayUtilsStringUtils 来自commons-lang,但這些都是易於編寫的方法-仅需几个迴圈)

  • 5月前
    3 #

    只是有所不同:一个遞迴解決方案.不添加任何多餘的空格。

    public static String reverse(String s) {
       int k = s.indexOf(" ");
       return k == -1 ? s : reverse(s.substring(k + 1)) + " " + s.substring(0, k);
    }
    
    System.out.println("[" + reverse("This is interview question") + "]");
    // prints "[question interview is This]"
    

    我還將改进 split 通過使用 \b解決方案 相反(太明顯了!)。

       String[] parts = "Word boundary is better than space".split("\\b");
        StringBuilder sb = new StringBuilder();
        for (int i = parts.length; i --> 0 ;) {
            sb.append(parts[i]);
        }
        System.out.println("[" + sb.toString() + "]");
        // prints "[space than better is boundary Word]"
    

  • 5月前
    4 #

    Bozho已经给出了一个很好的特定於Java的答案,但是如果您需要在没有Java API方法的情况下解決此問题:

    要反轉,您只需將單个單詞弹出到 stack 並在没有文字的情况下將它们全部弹出。

    (請更加清楚,Java確實提供了一種 類,因此也可以在Java中使用此方法。)

  • 5月前
    5 #

    只需將其在一个空格字元上拆分為一个字元串陣列,然後以相反的順序遍歷该陣列並構造輸出字元串.

    Stack
    
    String input = "This is interview question"; String output = ""; String[] array = input.split(" "); for(int i = array.length-1; i >= 0; i--) { output += array[i]; if (i != 0) { output += " "; } }

  • delphi:如何更改外部宣告的函式的實現(绕行)
  • 如何获取Linux(ubuntu)上的视频捕获設備(網路摄像機)列表? (C / C ++)