Reverse a Number in Java

Learn to reverse digits of a number using loops and mathematical operations

🔄 Reversing Numbers in Java

Reversing a number means changing the order of its digits. For example, 123 becomes 321. This involves extracting digits using modulus and building the reversed number step by step.


// Reverse 123 to get 321
int num = 123, reversed = 0;
while (num > 0) {
    reversed = reversed * 10 + num % 10;
    num /= 10;
}
                                    

Different Approaches

🔁

While Loop

Most common iterative approach

while (num > 0) {
    reversed = reversed * 10 + num % 10;
    num /= 10;
}
🔄

For Loop

Alternative loop structure

for (; num > 0; num /= 10) {
    reversed = reversed * 10 + num % 10;
}
📝

String Method

Using StringBuilder for reversal

String str = String.valueOf(num);
String reversed = new StringBuilder(str)
    .reverse().toString();
🎯

Recursive Method

Function calling itself

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

🔹 Complete Example Program

Here's a complete Java program to reverse a number:

import java.util.Scanner;

public class ReverseNumber {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("Enter a number: ");
        int number = scanner.nextInt();
        int originalNumber = number;
        int reversed = 0;
        
        // Reverse using while loop
        while (number > 0) {
            int digit = number % 10;  // Get last digit
            reversed = reversed * 10 + digit;  // Build reversed number
            number /= 10;  // Remove last digit
        }
        
        System.out.println("Original number: " + originalNumber);
        System.out.println("Reversed number: " + reversed);
        
        // Alternative using string method
        String strReversed = new StringBuilder(String.valueOf(originalNumber))
                            .reverse().toString();
        System.out.println("Using string method: " + strReversed);
        
        scanner.close();
    }
}

Sample Output:

Enter a number: 12345

Original number: 12345

Reversed number: 54321

Using string method: 54321

🔹 Step-by-Step Process

How the Algorithm Works (Example: 123):

  1. Step 1: num=123, reversed=0
  2. Step 2: digit = 123%10 = 3, reversed = 0*10+3 = 3, num = 123/10 = 12
  3. Step 3: digit = 12%10 = 2, reversed = 3*10+2 = 32, num = 12/10 = 1
  4. Step 4: digit = 1%10 = 1, reversed = 32*10+1 = 321, num = 1/10 = 0
  5. Result: 321

Key Operations:

  • % 10: Gets the last digit
  • / 10: Removes the last digit
  • * 10 + digit: Builds the reversed number

🧠 Test Your Knowledge

What will be the reversed form of 4567?