Java Program to Reverse a Number

Reversing a number is a common programming problem that helps beginners understand loops, arithmetic operations, and string handling in Java.

Java provides multiple ways to reverse a number, including loops, StringBuilder, recursion, and mathematical techniques.

1. Understanding the Problem

Given an integer, reverse its digits.

Number: 1234 → Reversed: 4321
Number: 987 → Reversed: 789
Number: 100 → Reversed: 1

2. Using While Loop

Java
Reverse number using while loop
import java.util.Scanner;

public class ReverseNumber {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int num = sc.nextInt();

        int reverse = 0;
        int n = Math.abs(num);

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

        if (num < 0) {
            reverse = -reverse;
        }

        System.out.println("Reversed number = " + reverse);
    }
}
Enter a number: 1234
Reversed number = 4321

3. Using StringBuilder

Java
Reverse using StringBuilder
import java.util.Scanner;

public class ReverseStringMethod {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a number: ");
        String num = sc.nextLine();

        if (num.startsWith("-")) {
            String reversed = "-" + new StringBuilder(num.substring(1)).reverse().toString();
            System.out.println("Reversed number = " + reversed);
        } else {
            String reversed = new StringBuilder(num).reverse().toString();
            System.out.println("Reversed number = " + reversed);
        }
    }
}

4. Using For Loop

Java
Reverse using for loop
import java.util.Scanner;

public class ReverseForLoop {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a number: ");
        String num = sc.nextLine();

        String reverse = "";

        for (int i = 0; i < num.length(); i++) {
            reverse = num.charAt(i) + reverse;
        }

        System.out.println("Reversed number = " + reverse);
    }
}

5. Using Recursion

Java
Reverse using recursion
import java.util.Scanner;

public class ReverseRecursion {

    static int reverseNum(int n, int rev) {
        if (n == 0)
            return rev;
        return reverseNum(n / 10, rev * 10 + n % 10);
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int num = sc.nextInt();

        if (num == 0) {
            System.out.println("Reversed number = 0");
        } else {
            int result = reverseNum(Math.abs(num), 0);
            if (num < 0)
                result = -result;

            System.out.println("Reversed number = " + result);
        }
    }
}

6. Common Mistakes

1. Not handling negative numbers correctly.

2. Losing leading zeros when reversing numbers.

3. Mixing String and integer logic incorrectly.

4. Forgetting to update the reverse variable properly.

7. Applications

1. Used in palindrome number problems.

2. Helpful in mathematical algorithms.

3. Common in coding interviews.

Conclusion

Reversing a number in Java can be achieved using multiple approaches such as loops, StringBuilder, and recursion. Each method has its own advantages depending on the situation.

Practicing these approaches improves problem-solving skills and strengthens understanding of Java fundamentals.