Reverse
string
A Java string
contains a sequence of characters. To create another version of that string
, we can reverse it. This can be used to form a string
key.
We use many parts from Java to reverse a string
. We create a mutable char
array buffer. We use charAt
to get (in inverse order) chars from the original string
.
We introduce the reverseString
method. First we allocate a char
array with a size equal to the string
's length. Then we loop the array elements.
string
character indexed from the opposite (inverted) side. This reverses the characters.string
and return it. In main we find that the reverseString
works as expected on simple strings.public class Program { public static String reverseString(String value) { // Create a char buffer. char[] array = new char[value.length()]; for (int i = 0; i < array.length; i++) { // Assign to the array from the string in reverse order. // ... charAt uses an index from the last. array[i] = value.charAt(value.length() - i - 1); } return new String(array); } public static void main(String[] args) { // Test our reverse string method. String original = "abc"; String reversed = reverseString(original); System.out.println(original); System.out.println(reversed); original = "qwerty"; reversed = reverseString(original); System.out.println(original); System.out.println(reversed); } }abc cba qwerty ytrewq
The Arrays class
has no reverse method. This means that we must reverse these characters manually. We find a reverse()
on Collections.
Collections.reverse
would require the string
be converted into a collection like an ArrayList
. This would hinder performance.reverseString
method is the indexing expression into the string
. This is the argument to charAt
.StringBuilder
Here is an alternative method. StringBuilder
has a reverse method. We can create a StringBuilder
from a string
and then reverse it.
String
reversal is not a common requirement. But for certain problems (like key generation) or for homework assignments, it has use.