Reverse an Array or String in Java
Java Program to Find Pairs in Array with Given Sum
Reverse an array or string is one of the most basic and important programming tasks in Java.
It helps beginners understand loops, indexing, and data manipulation.
The goal is simple, given an array or string, we need to reverse the order of its elements so that the first becomes last, and the last becomes first.
Java Program to Find Pairs in Array with Given Sum
Problem Statement for Reverse an Array or String in Java
Example 1: Array
Input:
[2, 4, 6, 8, 10]
Output:
[10, 8, 6, 4, 2]
Example 2: String
Input:
["India", "UK", "Pakistan", "Australia"]
Output:
["Australia", "Pakistan", "UK", "India"]
We can solve this using a two pointer approach, one pointer starts from the beginning, the other from the end, and we swap their values until they meet in the middle.
Methods to Reverse an Array or String in java
Let’s move further and get to know all 4 methods to Reverse an array or string java programming:
1. Reverse a String Array in Java
Algorithm:
- We start with two pointers – one at the start (left = 0) and one at the end (right = n – 1).
- Swap the elements at these two positions.
- Move both pointers closer (left++, right–) until they meet.
Java Code:
import java.util.*;
public class Main {
public static void main(String[] args) {
// Given input array
String[] inputArray = {"India", "UK", "Pakistan", "Australia"};
// Print array before reverse
System.out.println("Initial String array : " + Arrays.toString(inputArray));
// Calling method to reverse array
reverse(inputArray);
}
public static void reverse(String[] inputArray) {
// Loop with two pointers: left and right
for (int left = 0, right = inputArray.length - 1; left < right; left++, right--) {
// Swap the values at the left and right indices
String temp = inputArray[left];
inputArray[left] = inputArray[right];
inputArray[right] = temp;
}
// Print array after reverse
System.out.println("Reversed String array : " + Arrays.toString(inputArray));
}
}
Output:
Initial String array : [India, UK, Pakistan, Australia] Reversed String array : [Australia, Pakistan, UK, India]
Space Complexity: O(1)
Learn DSA
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
2. Reverse a String in Java
Java Code:
public class ReverseString {
public static void main(String[] args) {
String str = "HELLO";
// Convert string to character array
char[] ch = str.toCharArray();
// Reverse using two-pointer approach
for (int left = 0, right = ch.length - 1; left < right; left++, right--) {
char temp = ch[left];
ch[left] = ch[right];
ch[right] = temp;
}
// Convert back to string
String reversed = new String(ch);
System.out.println("Original String : " + str);
System.out.println("Reversed String : " + reversed);
}
}
Output:
Original String : HELLO Reversed String : OLLEH
3. Reverse String Using StringBuilder
Java provides an easy built in method to reverse strings using StringBuilder.
Java Code:
public class ReverseUsingStringBuilder {
public static void main(String[] args) {
String str = "JAVA PROGRAMMING";
String reversed = new StringBuilder(str).reverse().toString();
System.out.println("Original String : " + str);
System.out.println("Reversed String : " + reversed);
}
}
Output:
Original String : JAVA PROGRAMMING Reversed String : GNIMMARGORP AVAJ
4. Reverse String Using StringBuilder
Step by step working:
| Step | left | right | Array After Swap |
|---|---|---|---|
| 1 | 0 | 4 | [10, 4, 6, 8, 2] |
| 2 | 1 | 3 | [10, 8, 6, 4, 2] |
| 3 | 2 | 2 | Stop (middle reached) |
Java Code:
import java.util.*;
public class Main {
public static void main(String[] args) {
// Given input array
int[] inputArray = {2, 4, 6, 8, 10};
// Print array before reverse
System.out.println("Array without reverse : " + Arrays.toString(inputArray));
// Calling method to reverse array
reverse(inputArray);
}
public static void reverse(int[] inputArray) {
// Loop with two pointers
for (int left = 0, right = inputArray.length - 1; left < right; left++, right--) {
// Swap the values at the left and right indices
int temp = inputArray[left];
inputArray[left] = inputArray[right];
inputArray[right] = temp;
}
// Print array after reverse
System.out.print("Reversed Array :");
for (int num : inputArray) {
System.out.print(" " + num);
}
}
}
Output:
Array without reverse : [2, 4, 6, 8, 10] Reversed Array : 10 8 6 4 2
Conclusion
Reversing arrays and strings is an essential problem in Java that helps build a foundation for logical thinking and algorithmic skills.
- Use the two pointer approach for arrays (space efficient and fast).
- Use StringBuilder.reverse() for strings (clean and convenient).
- Understand both manual and built in ways to strengthen your basics.
These techniques are frequently asked in coding interviews and are often used in problems like palindrome checking, array rotation, and string transformations.
FAQ's related to Reverse an Array or String
Answer:
Use the two pointer technique where elements are swapped from both ends until the middle is reached.
Answer:
Use the built in method:
String reversed = new StringBuilder(str).reverse().toString();
Answer:
The time complexity is O(n) since every element is visited once.
Answer:
Using:
Collections.reverse(list);
Answer:
- For learning and interviews, use manual reversal to understand the logic.
- For production code, use built in methods for simplicity and reliability.
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others
Arrays
- Introduction to Arrays – C | C++ | Java
- Introduction to 2-D Arrays – C | C++ | Java
- Sorting of Array – C | C++ | Java
- Array Rotation – C | C++ | Java
- Reverse an array or string- C | C++ | Java
- Find pairs in array with given sum – C | C++ | Java
- Sort the array in Waveform – C | C++ | Java
- Majority Element in Array – C | C++ | Java
- Boyer-Moore’s Voting Algorithm – C | C++ | Java
- K-pairs with smallest sum in 2 arrays – C | C++ | Java
- Largest Sum Contigous SubArray – C | C++ | Java
- Maximum Average Sub-array of K length – C | C++ | Java
- Size of sub-array with max sum – C | C++ | Java
- Sub-array with given sum – C | C++ | Java
- Triplet that sum to a given value – C | C++ | Java
- Segregate 0’s and 1’s in array – C | C++ | Java
- Segregate 0’s 1’s and 2’s in array – C | C++ | Java
- Sort elements in array by frequency – C | C++ | Java
- Finding pythagorean triplets in an array – C | C++ | Java
- Reorder array using given indexes – C | C++ | Java
- Merging two sorted arrays – C | C++ | Java
- Minimum number of Merge Operations to make an Array Palindrome – C | C++ | Java
- Find Zeros to be Flipped so that number of Consecutive 1’s is maximized – C | C++ | Java

import java.util.*;
public class shivam{
public static void main(String []shivam){
Scanner sc= new Scanner(System.in);
String s=sc.nextLine();
char []ch=new char[s.length()];
int j=0;
for(int i=s.length()-1;i>=0;i–){
ch[j]=s.charAt(i);
j++;
}
s=new String(ch);
System.out.print(s);
}
}
}
import java.util.Arrays;
import java.util.Scanner;
public class ReverseString {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“Enter size of array:”);
int size = sc.nextInt();
int arr[]=new int[size];
System.out.println(“Enter array:”);
for (int i = 0; i =0;i–) {
System.out.println(arr[i]);
//System.out.println(Arrays.toString(arr));
}
}
}
public class ArrayPrint {
public static void main(String[] args) {
int arr[]={10,20,45,75,8,2,6,12,8,7,5,1};
System.out.println(“array element revers orders”);
for (int k = arr.length-1;k>=0; k–) {
System.out.println(arr[k]);
}
}
}
abc
public class ArrayPrint {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str2=”abc”;
String revers=””;
for (int i=str2.length()-1;i>=0; i–) {
revers=revers+str2.charAt(i);
}
System.out.println(revers);
}
}