In this tutorial, we’ll learn how to reverse a String in Java.
The string is a character sequence which in Java is considered an object. In Java, you can perform various operations on the string object. String Reverse is one of the most commonly used operations in a string object. In this tutorial, I’ll tell you the different reverse string approaches in Java.
In Java there are numerous ways to reverse the string. Strings can be reversed with StringBuffer, StringBuilder, iteration and CharAt Method. See how to reverse the Java string.
Reverse a String using String Builder or String Buffer Class
StringBuffer and StringBuilder consist of an inbuilt reverse() method that is used to reverse the StringBuffer characters. This method replaces the sequence of characters in the opposite order.
We can use StringBuilder.reverse() to reverse a string in Java efficiently. Alternatively, the StringBuffer.reverse() method can also use. It suggested using StringBuilder because it is not synchronised and faster than StringBuffer. Below is the code for reversing a string using an inbuild StringBuilder class method.
public class Main { public static String reverse(String str){ return new StringBuilder(str).reverse().toString(); } public static void main(String[] args) { String str = "Welcome to Computer Notes"; str = reverse(str); System.out.println("Reverse String results : "+str); } }
When the above code is executed, the result is as shown below:
It’s all StringBuilder Class. Alternatively, you can also use the reverse() method StringBuffer class just like StringBuilder. Let’s look at the following code.
public class Main { public static void main(String[] args) { StringBuffer StrBuff = new StringBuffer("Welcome to Computer Notes"); System.out.println(StrBuff.reverse()); } }
The output is the same as the StringBuilder class when you run the program.
Note: either you can reverse the String by using reverse() StringBuffer as shown in the above program or simply use the code logic as shown below:
StringBuffer StrBuff =new StringBuffer("Welcome to Computer Notes"); System.out.println(StrBuff.reverse()); Output: setoN retupmoC ot emocleW
StringBuilder and StringBuffer have the same reverse approach in Java. But, because it’s not synchronised and faster than String Buffer, StringBuilder is preferred. Let us take a closer look at this tutorial and learn a new approach to reversing a string in Java.
Reversing a String using Reverse Iteration
In this approach, I first converted the given string to the array with CharArray() method. Then I just iterated the array in the opposite order.
public class Main { public static String RevStr(String s){ char c[]=s.toCharArray(); String reverse =""; for(int i=c.length-1;i>=0;i--) { reverse+=c[i]; } return reverse; } public static void main(String[] args) { System.out.println(RevStr("Hi Dinesh Thakur")); System.out.println(RevStr("Welcome to Computer Notes")); } }
When you execute this program, the output looks like as shown below:
String Reverse using Recursion
Recursion is nothing but a calling function. Recursive methods need stack memory. In this approach, I shall write a method that reverses the string by recursively calling itself. Let’s do it and see how it works.
import java.util.*; public class Main { String RevStr(String str) { if(str.length() == 0) return " "; return str.charAt(str.length()-1) + RevStr(str.substring(0,str.length()-1)); } public static void main(String[] args) { Main m = new Main(); Scanner Scan = new Scanner(System.in); System.out.print("Enter the string : "); String s = Scan.nextLine(); System.out.println("Reversed String: "+m.RevStr(s)); } }
When you execute this program, the output looks like as shown below:
In the above code, I created the Main r class object. Then I’ve read and stored the entered string in the s string variable using sc.nextLine(). Finally, I called r.rev(s) for the reverse method. Having understood this, the last approach in this tutorial will now be understandable. I’m going to tell you here how to reverse the letters in the current string.
Reverse the letters present in the String
This Java program reverses letters in a user-entered string. It does not reverse the entire string as seen previously. For example, Hello people are called olleH elpoeP. For example. Let’s use Java to implement the same.
import java.util.*; public class Main { public static void main(String[] args) { String str = "Welcome To Computer Notes"; String[] strArray = str.split(" "); for (String temp: strArray) { System.out.println(temp); } for(int i = 0; i<3; i++){ char[] chrArray = strArray[i].toCharArray(); for (int j = chrArray.length-1; j>=0; j--) { System.out.print(chrArray[j]);} System.out.print(" "); } } }
The output of the above program will be as shown below:
Reverse a String using CharAt Method
In the below Java program, you can understand how to reverse a string entered by the user. I used the CharAt() method here to extract the characters from the String input. The main task of the CharAt() method is to return the character to the given string index. Then I attached them in reverse to reverse the string specified. It is one of the easy ways to reverse a Java string.
import java.util.*; public class Main { public static void main(String[] args) { String ori, StrRev = ""; Scanner Scan = new Scanner(System.in); System.out.println("Enter a string to reverse"); ori = Scan.nextLine(); int length = ori.length(); for (int i = length - 1 ; i >= 0 ; i--) StrRev = StrRev + ori.charAt(i); System.out.println("Reverse of the string: " + StrRev); } }
When you execute this program, the output looks like as shown below: