Reverse a Number in Java

Learn how to reverse a number in Java using different methods such as loops, arithmetic operations, and recursion. This beginner-friendly explanation includes logic breakdown, examples, dry run, and multiple Java programs.

Introduction

Reversing a number is a common programming task for beginners in Java. The goal is simple: take a number like 1234 and reverse its digits to get 4321. This problem helps you understand loops, modulus operator, and integer manipulation.

What is a Reverse Number?

A reversed number is simply the original number with its digits in the opposite order.
Examples:

Algorithm

The logic to reverse a number is:

  1. Initialize rev = 0.
  2. Extract the last digit: digit = n % 10.
  3. Add the digit to the reversed number: rev = rev * 10 + digit.
  4. Remove the last digit from the original number: n = n / 10.
  5. Repeat until n becomes 0.

Java Program to Reverse a Number


public class ReverseNumber {
    public static void main(String[] args) {
        int n = 1234;
        int rev = 0;

        while (n != 0) {
            int digit = n % 10;   
            rev = rev * 10 + digit;  
            n = n / 10;             
        }

        System.out.println("Reversed Number: " + rev);
    }
}

Dry Run

Step n digit rev
1 1234 4 4
2 123 3 43
3 12 2 432
4 1 1 4321

Reverse a Number Using Recursion


public class ReverseUsingRecursion {

    static int reverse(int n, int rev) {
        if (n == 0)
            return rev;

        return reverse(n / 10, rev * 10 + (n % 10));
    }

    public static void main(String[] args) {
        int number = 9876;
        int reversed = reverse(number, 0);

        System.out.println("Reversed Number: " + reversed);
    }
}

Reverse a Number Without Using Loop

We can also reverse a number using string methods:


public class ReverseWithString {
    public static void main(String[] args) {
        int n = 12345;

        String reversed = new StringBuilder(String.valueOf(n))
                            .reverse()
                            .toString();

        System.out.println("Reversed Number: " + reversed);
    }
}

Conclusion

Reversing a number in Java is an essential beginner-level task that helps build concepts like loops, modulus, recursion, and string manipulation. By understanding multiple approaches, you become more confident with Java programming fundamentals.