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

问题描述 投票:-3回答:1

我正在使用此代码来颠倒句子的顺序,但是它也可以颠倒字符的顺序。在这里为我提供帮助,以使字符不会被颠倒,只有单词会被颠倒。例如“猫在跑”->“猫在跑”

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);    
    }
}
java recursion substring reverse
1个回答
0
投票

尝试一下:

 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.println(str+" ");
      return;
    }
    System.out.print(str.substring(spaceIndex+1) + " ");
    reverse(str.substring(0,spaceIndex));
  }
© www.soinside.com 2019 - 2024. All rights reserved.