This article discusses 5 different ways of reversing strings in Java through examples.
Following are some interesting facts about String and StringBuilder classes :
Method:
1. Create a temporary byte[] of length equal to the length of the input string. 2. Store the bytes (which we get by using getBytes() method) in reverse order into the temporary byte[] . 3. Create a new String abject using byte[] to store result.
JAVA
// Java program to ReverseString using ByteArray. import java.lang.*; import java.io.*; import java.util.*; // Class of ReverseString class ReverseString { public static void main(String[] args) { String input = "GeeksforGeeks"; // getBytes() method to convert string // into bytes[]. byte[] strAsByteArray = input.getBytes(); byte[] result = new byte[strAsByteArray.length]; // Store result in reverse order into the // result byte[] for (int i = 0; i < strAsByteArray.length; i++) result[i] = strAsByteArray[strAsByteArray.length - i - 1]; System.out.println(new String(result)); } }
Output:
skeeGrofskeeG
JAVA
// Java program to ReverseString using StringBuilder import java.lang.*; import java.io.*; import java.util.*; // Class of ReverseString class ReverseString { public static void main(String[] args) { String input = "Geeks for Geeks"; StringBuilder input1 = new StringBuilder(); // append a string into StringBuilder input1 input1.append(input); // reverse StringBuilder input1 input1.reverse(); // print reversed String System.out.println(input1); } }
Output:
skeeG rof skeeG
1. First, convert String to character array by using the built in Java String class method toCharArray(). 2. Then, scan the string from end to start, and print the character one by one.
JAVA
// Java program to Reverse a String by // converting string to characters one // by one import java.lang.*; import java.io.*; import java.util.*; // Class of ReverseString class ReverseString { public static void main(String[] args) { String input = "GeeksForGeeks"; // convert String to character array // by using toCharArray char[] try1 = input.toCharArray(); for (int i = try1.length - 1; i >= 0; i--) System.out.print(try1[i]); } }
Output:
skeeGrofskeeG
1. Set the left index equal to 0 and right index equal to the length of the string -1. 2. Swap the characters of the start index scanning with the last index scanning one by one. After that, increase the left index by 1 (left++) and decrease the right by 1 i.e., (right--) to move on to the next characters in the character array . 3. Continue till left is less than or equal to the right.
JAVA
// Java program to Reverse a String using swapping // of variables import java.lang.*; import java.io.*; import java.util.*; // Class of ReverseString class ReverseString { public static void main(String[] args) { String input = "Geeks For Geeks"; char[] temparray = input.toCharArray(); int left, right = 0; right = temparray.length - 1; for (left = 0; left < right; left++, right--) { // Swap values of left and right char temp = temparray[left]; temparray[left] = temparray[right]; temparray[right] = temp; } for (char c : temparray) System.out.print(c); System.out.println(); } }
Output:
skeeG roF skeeG
1. We copy String contents to an object of ArrayList. 1. We create a ListIterator object by using the listIterator() method on the ArrayList object. 2. ListIterator object is used to iterate over the list. 3. ListIterator object helps us to iterate over the reversed list and print it one by one to the output screen.
JAVA
// Java program to Reverse a String using ListIterator import java.lang.*; import java.io.*; import java.util.*; // Class of ReverseString class ReverseString { public static void main(String[] args) { String input = "Geeks For Geeks"; char[] hello = input.toCharArray(); List trial1 = new ArrayList<>(); for (char c : hello) trial1.add(c); Collections.reverse(trial1); ListIterator li = trial1.listIterator(); while (li.hasNext()) System.out.print(li.next()); } }
Output:
skeeG roF skeeG
JAVA
// Java program to demonstrate conversion from // String to StringBuffer and reverse of string import java.lang.*; import java.io.*; import java.util.*; public class Test { public static void main(String[] args) { String str = "Geeks"; // conversion from String object to StringBuffer StringBuffer sbr = new StringBuffer(str); // To reverse the string sbr.reverse(); System.out.println(sbr); } }
Output:
skeeG