javacodex.com
Java Examples
Java Examples
memu home questions

Number to Word Conversion

The following program takes a number and converts it to a string:

NumberToWord.java

public class NumberToWord {
 
   private static final String[] specialNames = {
      "",
      " thousand",
      " million",
      " billion",
      " trillion",
      " quadrillion",
      " quintillion"
   };
 
   private static final String[] tensNames = {
      "",
      " ten",
      " twenty",
      " thirty",
      " forty",
      " fifty",
      " sixty",
      " seventy",
      " eighty",
      " ninety"
   };
 
   private static final String[] numNames = {
      "",
      " one",
      " two",
      " three",
      " four",
      " five",
      " six",
      " seven",
      " eight",
      " nine",
      " ten",
      " eleven",
      " twelve",
      " thirteen",
      " fourteen",
      " fifteen",
      " sixteen",
      " seventeen",
      " eighteen",
      " nineteen"
   };
 
   private String convertLessThanOneThousand(int number) {
      String current;
 
      if (number % 100 < 20) {
         current = numNames[number % 100];
         number /= 100;
      } else {
         current = numNames[number % 10];
         number /= 10;
 
         current = tensNames[number % 10] + current;
         number /= 10;
      }
      if (number == 0) {
         return current;
      }
      return numNames[number] + " hundred" + current;
   }
 
   public String convert(int number) {
 
      if (number == 0) {
         return "zero";
      }
 
      String prefix = "";
 
      if (number < 0) {
         number = -number;
         prefix = "negative";
      }
 
      String current = "";
      int place = 0;
 
      do {
         int n = number % 1000;
         if (n != 0) {
            String s = convertLessThanOneThousand(n);
            current = s + specialNames[place] + current;
         }
         place++;
         number /= 1000;
      } while (number > 0);
 
      return (prefix + current).trim();
   }
 
   public static void main(String[] args) {
      NumberToWord numberToWord = new NumberToWord();
      System.out.println("87654321 : " + numberToWord.convert(87654321));
      System.out.println("-12345 : " + numberToWord.convert(-12345));
   }
}
 

output

$ java NumberToWord
87654321 : eighty seven million six hundred fifty four thousand three hundred twenty one
-12345 : negative twelve thousand three hundred forty five

Questions answered by this page:

How to convert number to words in java? Convert a math number to the equivalent readable words? Program to convert a given number to words Digit to words converter in java




Contact: javacodex@yahoo.com