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):
- Step 1: num=123, reversed=0
- Step 2: digit = 123%10 = 3, reversed = 0*10+3 = 3, num = 123/10 = 12
- Step 3: digit = 12%10 = 2, reversed = 3*10+2 = 32, num = 12/10 = 1
- Step 4: digit = 1%10 = 1, reversed = 32*10+1 = 321, num = 1/10 = 0
- Result: 321
Key Operations:
- % 10: Gets the last digit
- / 10: Removes the last digit
- * 10 + digit: Builds the reversed number