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
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
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
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
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.
Codecrown