Изменение предложения в Java без изменения порядка символов с помощью рекурсии - PullRequest
0 голосов
/ 30 октября 2019

Я использую этот код, чтобы изменить порядок предложений, но он также меняет порядок символов. Помоги мне здесь, чтобы персонажи не менялись местами, только слова. например, "кошка бежит" -> "бежит, кошка"

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

1 Ответ

2 голосов
/ 31 октября 2019

Попробуйте:

  • вы ищете последний пробел "Cat Is Running"
  • на первой итерации SpaceIndex = 6
  • вы печатаете деталь после пробела"Running" и вы вызываете метод recurive без этой части ("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));
}
...