Numbers are basically represented in numeric format, or as integer values. But for pronunciation, we use words. Each number has a unique word format.
For example, the word format of 1 is "One". Just like the word format for 2 is "two", the word format for 3 is "three"...and so on. For two digits, the number format is slightly different. 21 stands for "twenty-one", 45 stands for "forty-five"...and so on. Therefore, for all types of numbers, there is a unique word format available.
Input number is 15. Word format of 15 = Fifteen
Input number is 123. Word format of 123 = One Hundred Twenty-Three
Input number is 4532. Word format of 4532 = Four Thousand Five Hundred Thirty-Two.
Step-1 - Get the entered number through the static input method.
Step-2 - Declare an array of string type and store the numbers in the string.
Step-3 - Then we declare some other arrays of string type in which we store word formats of different types of numbers such as one digit, two digit, hundreds and thousands positions ( Here we have only written the code up to four digits, you can further extend it as per your requirement).
Step-4 - We are finding the length of a given number. Depending on the length of the numbers, we have different conditions to concatenate the index values of the array.
Step-5 - After completing the process, we print the number and its text format.
We provide solutions in different ways.
Through user-defined methods with static input values.
Let’s look at the program and its output one by one.
In this method we declare some random input numbers through static input and pass these numbers as parameters into user defined method and then using algorithm inside the method we can print the literal format of the given number.
public class Main{ public static void main(String args[]) { digitToWord("1234".toCharArray()); digitToWord("557".toCharArray()); digitToWord("45".toCharArray()); digitToWord("2".toCharArray()); digitToWord("0".toCharArray()); digitToWord("801".toCharArray()); digitToWord("54312".toCharArray()); //passing empty string digitToWord("".toCharArray()); } static void digitToWord(char n[]) { int len = n.length; if (len == 0) { System.out.println("Empty string."); return; } if (len > 4) { System.out.print(String.valueOf(n) + ": "); System.out.println("The number you have entered has more than four digits."); return; } String[] unitPlaceDig = new String[] {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"}; String[] tensPlaceDig = new String[] {"", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"}; String[] tensMultiplier = new String[] {"", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"}; String[] powOfTens = new String[] {"Hundred", "Thousand"}; System.out.print(String.valueOf(n) + ": "); if (len == 1){ System.out.println(unitPlaceDig[n[0]-'0']); return; } int p = 0; while (p < n.length) { if (len >= 3){ if (n[p] - '0' != 0) { System.out.print(unitPlaceDig[n[p] - '0'] + " "); System.out.print(powOfTens[len - 3]+ " "); } --len; } else { if (n[p] - '0' == 1) { int sum = n[p] - '0' + n[p + 1] - '0'; System.out.println(tensPlaceDig[sum]); return; } else if (n[p] - '0' == 2 && n[p + 1] - '0' == 0) { System.out.println("Twenty"); return; } else { int i = (n[p] - '0'); if (i > 0) System.out.print(tensMultiplier[i]+ " "); else System.out.print(""); ++p; if (n[p] - '0' != 0) System.out.println(unitPlaceDig[n[p] - '0']); } } ++p; } } }
1234: One Thousand Two Hundred Thirty Four 557: Five Hundred Fifty Seven 45: Forty Five 2: Two 0: Zero 801: Eight Hundred One 54312: The number you have entered has more than four digits. Empty string.
In this article, we explored how to accept numeric input and display that number as text in Java.
The above is the detailed content of Java program to input numbers and display them in text form. For more information, please follow other related articles on the PHP Chinese website!