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.

Reverse an Array or String in Java

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

1. Reverse a String Array in Java

Reversing the elements of String Array

Algorithm:

  1. We start with two pointers – one at the start (left = 0) and one at the end (right = n – 1).
  2. Swap the elements at these two positions.
  3. Move both pointers closer (left++, right–) until they meet.

Java Code:

Run
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]

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:

Run
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:

Run
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:

StepleftrightArray After Swap
104[10, 4, 6, 8, 2]
213[10, 8, 6, 4, 2]
322Stop (middle reached)

Java Code:

Run
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

Checkout list of all the video courses in PrepInsta Prime Subscription

Checkout list of all the video courses in PrepInsta Prime Subscription

Arrays

  • Introduction to Arrays – CC++ | Java
  • Introduction to 2-D Arrays – CC++ Java
  • Sorting of Array – C | C++ | Java
  • Array Rotation – CC++ | Java
  • Reverse an array or string- CC++ | Java
  • Find pairs in array with given sum – CC++ | Java
  • Sort the array in Waveform – CC++ | Java
  • Majority Element in Array – CC++ | Java
  • Boyer-Moore’s Voting Algorithm – CC++ | Java
  • K-pairs with smallest sum in 2 arrays – C | C++ | Java
  • Largest Sum Contigous SubArray – CC++ | Java
  • Maximum Average Sub-array of K length – CC++ | Java
  • Size of sub-array with max sum – CC++ | Java
  • Sub-array with given sum – CC++ | Java
  • Triplet that sum to a given value – CC++ | Java
  • Segregate 0’s and 1’s in array – CC++ | Java
  • Segregate 0’s 1’s and 2’s in array – CC++ | Java
  • Sort elements in array by frequency – CC++ | Java
  • Finding pythagorean triplets in an array – CC++ | Java
  • Reorder array using given indexes – CC++ | Java
  • Merging two sorted arrays – CC++ | Java
  • Minimum number of Merge Operations to make an Array Palindrome – CC++ | Java
  • Find Zeros to be Flipped so that number of Consecutive 1’s is maximized – CC++ | Java

5 comments on “Reverse an Array or String in Java”


  • Shivam

    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);
    }
    }
    }


  • manali

    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));
    }
    }
    }


  • nilesh

    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]);

    }
    }

    }


    • nilesh

      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);

      }

      }