EN
Java - how to reverse a string
2 points
In this post we will take a look how to reverse a string in java. Of course there is more than one way to do it.
xxxxxxxxxx
1
String example = "ABCD"; // we have this string
2
String reversed = "DCBA"; // expected - reversed string
Code example:
xxxxxxxxxx
1
String example = "ABCD";
2
String reversed = new StringBuilder(example).reverse().toString();
3
4
System.out.println(example); // ABCD
5
System.out.println(reversed); // DCBA
Output:
xxxxxxxxxx
1
ABCD
2
DCBA
Code example:
xxxxxxxxxx
1
public class JavaReverseStringExample2 {
2
3
public static void main(String[] args) {
4
String example = "ABCD";
5
6
char[] arr = example.toCharArray();
7
int j = arr.length - 1;
8
9
for (int i = 0; i < arr.length / 2; i++, j--) {
10
char tmp = arr[i];
11
arr[i] = arr[j];
12
arr[j] = tmp;
13
}
14
String reversed = new String(arr);
15
16
System.out.println(example); // ABCD
17
System.out.println(reversed); // DCBA
18
}
19
}
Output:
xxxxxxxxxx
1
ABCD
2
DCBA
Code example:
xxxxxxxxxx
1
public class JavaReverseStringRecursive {
2
3
public static void main(String[] args) {
4
String example = "ABCD";
5
String reversed = reverseStringRecursive(example);
6
7
System.out.println(example); // ABCD
8
System.out.println(reversed); // DCBA
9
}
10
11
public static String reverseStringRecursive(String str) {
12
if ((null == str) || (str.length() <= 1)) {
13
return str;
14
}
15
16
return reverseStringRecursive(str.substring(1)) + str.charAt(0);
17
}
18
}
Output:
xxxxxxxxxx
1
ABCD
2
DCBA
Code example:
xxxxxxxxxx
1
import org.apache.commons.lang3.StringUtils;
2
3
public class JavaReverseStringApacheCommons {
4
5
public static void main(String[] args) {
6
String example = "ABCD";
7
String reversed = StringUtils.reverse(example);
8
9
System.out.println(example); // ABCD
10
System.out.println(reversed); // DCBA
11
}
12
}
Output:
xxxxxxxxxx
1
ABCD
2
DCBA
NOTE:
How Apache commons StringUtils.reverse looks internally:
xxxxxxxxxx
1
public class StringUtils {
2
3
// ..
4
5
public static String reverse(final String str) {
6
if (str == null) {
7
return null;
8
}
9
return new StringBuilder(str).reverse().toString();
10
}
11
12
// ..
13
14
}