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