Program to Convert Digit/Number to Words in Java
Converting Numbers to Words
Converting a number to words is a common problem in programming.
We will explore three different methods to achieve this in Java.
Method 1: Using Arrays
This method utilizes an array to map digits to their word equivalents.
import java.util.Scanner;
public class NumberToWords {
static String[] words = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
public static void convertToWords(int num) {
if (num >= 0 && num <= 9)
System.out.println(words[num]);
else
System.out.println("Invalid input!");
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a single-digit number: ");
int num = scanner.nextInt();
convertToWords(num);
scanner.close();
}
}
Output: Five
Method 2: Using String Manipulation
This method handles multi-digit numbers using iteration.
import java.util.Scanner;
public class NumberToWords {
static String[] words = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
public static void convertToWords(int num) {
String numStr = Integer.toString(num);
for (char digit : numStr.toCharArray()) {
System.out.print(words[digit - '0'] + " ");
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = scanner.nextInt();
convertToWords(num);
scanner.close();
}
}
Output: One Two Three
Method 3: Using Recursion
This method recursively processes each digit.
import java.util.Scanner;
public class NumberToWords {
static String[] words = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
public static void convertToWordsRecursive(int num) {
if (num == 0)
return;
convertToWordsRecursive(num / 10);
System.out.print(words[num % 10] + " ");
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = scanner.nextInt();
if (num == 0)
System.out.println("Zero");
else
convertToWordsRecursive(num);
scanner.close();
}
}
Output: Five Zero Seven