# Reverse position of words in a string using recursion

Upasana | November 20, 2020 | | 83 views |

In this article, we will write a program to reverse position of words in a given string using recursive approach.

Sample input

I am the best of bests

Output

bests of best the am I

## Recursive Approach

1. We will remove first word from the input string and append it at the end.

2. Repeat it till all the words are removed and input becomes empty.

## Java source

Reverse position of words in a string using Recusion Java
``````public class ReverseWordsInString {

public String reverse(String input) {
if (input.isEmpty()) {  (1)
return input;
}
String[] arr = input.split(" ", 2); (2)
String firstWord = arr[0];
String remainingSentence;
if (arr.length == 2)
remainingSentence = arr[1];
else
remainingSentence = "";
return reverse(remainingSentence) + firstWord + " ";  (3)
}
}``````
 1 Base condition in recursion, if the input is empty then we just return (unwind the stack in recursion) 2 We are splitting input string into two parts - first element of array will contain the first word, second element of array will contain the remaining sentence 3 Tail recursion - removes first word and appends it to the last

## JUnit testcase

We will write a simple Junit based testcase to assert the correctness of our given program.

JUnit Test
``````import org.junit.Test;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.*;

public class ReverseWordsInStringTest {

@Test
public void reverse() {
ReverseWordsInString utils = new ReverseWordsInString();
assertThat(utils.reverse("I am the best of bests"), equalTo("bests of best the am I"));
}
}``````

That’s all.

###### Java Coding Challenges:
See all articles in Java Coding Challenges
##### Top articles in this category:

###### Recommended books for interview preparation:
Book you may be interested in..
##### ebook PDF - Cracking Spring Microservices Interviews for Java Developers
Book you may be interested in..

##### Find more on this topic:

Java & Microservices interview refresher for experienced developers.