How to reverse String in Java with or without using StringBuffer Example

How to reverse String in Java

How to reverse String in Java without StringBuffer is one of the popular core java interview question. If you are using StringBuffer or StringBuilder to reverse string then it is too easy because both classes have reverse() method to achieving it. But if you are not using reverse() method of these classes then it is some tricky question which requires you to reverse String by applying logic. You can reverse a string by two ways one you can use loop and another way you could use recursion because string reverse is a recursive job. Here in this java tutorial we are going to see how to reverse String using StringBuffer, StringBuilder and using loop with logic. Let’s see example.

Example of Reverse String in Java
Following program has complete code to reverse any String in Java. Here we have used StringBuffer and StringBuilder’s reverse() method first to reverse a String. Then we have used own logic to reverse String. In own logic we have used toCharArray() method of String class which return character array of String as shown in following example.

/**
 * @author Dinesh.Rajput
 *
 */
public class ReverseStringExample {
 
    public static void main(String args[]) {
     
       //Reverse String in Java with Using StringBuffer
        String str = "Dinesh on Java";
        String reverse = new StringBuffer(str).reverse().toString();
        System.out.printf(" original String : %s , reversed String %s  %n", str, reverse);
     
        //Reverse String in Java with Using StringBuilder
        str = "Dinesh on Java";
        reverse = new StringBuilder(str).reverse().toString();
        System.out.printf(" original String : %s , reversed String %s %n", str, reverse);
     
        //Reverse String in Java without Using StringBuffer or StringBuilder
        str = "Dinesh on Java";
        reverse = reverse(str);
        System.out.printf(" original String : %s , reversed String %s %n", str, reverse);
    }  
 
 
    public static String reverse(String source){
        if(source == null || source.isEmpty()){
            return source;
        }      
        String reverse = "";
        for(int i = source.length() -1; i>=0; i--){
            reverse = reverse + source.charAt(i);
        }
     
        return reverse;
    }
   
}

Output
original String : Dinesh on Java , reversed String avaJ no hseniD
original String : Dinesh on Java , reversed String avaJ no hseniD
original String : Dinesh on Java , reversed String avaJ no hseniD

Above example shown many ways to reverse a String in java but as java programmer always use StringBuffer or StringBuilder method to reverse String for real project.