Java Program to Reverse a String

In this tutorial, we will write a program to reverse a string in Java. It means displaying the string from backward.

Consider the string reverse, we write a java program in various ways to reverse it and it will be displayed as esrever. Some of the ways to do it are using:

  • for loop
  • recursion
  • StringBuffer.

Write a java program to reverse a string:

Using for loop

 //reverse a string 

 import java.util.Scanner;

 class ReversingString
 {
    public static void main(String args[])
    {
       String str, revString= "";
       Scanner in = new Scanner(System.in);
      
      //user input
       System.out.println("Enter a string: ");
       str= in.nextLine();
      
       int length = str.length();
      
       for (int i = length - 1 ; i >= 0 ; i--)
       {
        revString += str.charAt(i);
       }
        
       //display the reverse result
       System.out.println("Reverse of the entered string: " + revString);
    }
 }

Output: when the code is is executed it shows the following result.

Enter a string:
I am learning java
Reverse of the entered string: avaj gninrael ma I


Using StringBuffer:

In this method, we use reverse() method of StringBuffer class to reverse a string in java.

//reverse a string Using StringBuffer

import java.util.Scanner;

class ReverseOfString
{
  public static void main(String args[])
  {
    String str;
    Scanner in = new Scanner(System.in);
      
    //user input
    System.out.println("Enter the string: ");
    str= in.nextLine();
      
    //using StringBuffer
    StringBuffer sb = new StringBuffer(str);
    System.out.println("Reverse of entered string is:"+sb.reverse());

  }
}

Output:

Enter the string:
reverse
Reverse of entered string is: esrever


Using Recursion:

 //reverse a string using recursion 

 import java.util.Scanner;

 class Main
 {
  public static void main(String args[])
  {
    Main rvrs = new Main();
    
    String str, revString= "";
    Scanner in = new Scanner(System.in);
    //user input
    System.out.println("Enter a string: ");
    str= in.nextLine();
      
   String reverse = rvrs.reverseString(str);
   System.out.println("Reverse of entered string is: "+reverse);

  }
  
  public String reverseString(String str)
  {
  if ((null == str) || (str.length() <= 1))
     {
       return str;
     }

     return reverseString(str.substring(1)) + str.charAt(0);
  }
 }

Output:

Enter the string:
reverse
Reverse of entered string is: esrever