Reverse a string using recursion in Java

Upasana | November 21, 2020 | 1 min read | 105 views | Java Coding Challenges


In this article, we will write a program to reverse character positions in a given string using recursive approach.

Sample input
carvia
Reversed output
aivrca

Recursive Approach

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

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

Java source

Reverse a string using Recusion Java
public class ReverseString {

    public String reverse(String input) {
        if (input.isEmpty()) {  (1)
            System.out.println("String is empty now");
            return input;
        }
        return reverse(input.substring(1)) + input.charAt(0);   (2)
    }
}
1 Base condition in recursion
2 Tail recursion

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 ReverseStringTest {

    @Test
    public void reverse() {
        ReverseString utils = new ReverseString();
        assertThat(utils.reverse("carvia"), equalTo("aivrac"));
    }
}

That’s all.


Java Coding Challenges:
  1. Reverse position of words in a string using recursion
  2. Check if the given string is palindrome
  3. Find two numbers of which the product is maximum in an array
  4. Prime number checker in Java
  5. Create anagram buckets from a given input array of words
  6. Anagrams string checker in Java
  7. Java Program to find Factorial of a number
See all articles in Java Coding Challenges
Top articles in this category:
  1. Reverse position of words in a string using recursion
  2. Reverse order of words inside string in Java
  3. Java Coding Problems for SDET Automation Engineer
  4. How to reverse a number in Java
  5. 50 Java Interview Questions for SDET Automation Engineer
  6. Java Program to find Factorial of a number
  7. Find longest non-repeating substring from a given string in Java

Recommended books for interview preparation:

Find more on this topic: