簡體   English   中英

Java中的一個句子倒置而不用遞歸改變字符順序

[英]Reversing a sentence in Java without changing the character order using recursion

我正在使用此代碼來反轉句子的順序,但它的作用也是反轉字符的順序。 在這里幫助我,這樣字符就不會被顛倒,只有文字可以。 例如“貓在跑”-->“貓在跑”

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

嘗試這個:

  • 你搜索最后一個空格"Cat Is Running"
  • 在第一次迭代SpaceIndex = 6
  • 您在"Running"的空間之后打印部分,然后在沒有該部分的情況下調用 recurive 相同的方法( "Cat Is"
  • 在未找到空間的最后一次迭代中,您只需 output 字符串即可。
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));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM