Convert Number To Text Java Program With Example

I Am Share A Java Program This Program Is Convert Number To Text . In This Program Take Input By User And Give Output After Convert Text. For Example "User Type 22 The Show OutPut In Text Twenty Two"

Start Source Code 


package com.androidpro.in;

import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
import
java.util.Scanner;

public class
Main {

   
private static String input;
    private static int
num;
    private static
String[] units =
            {
"",
                   
" One",
                   
" Two",
                   
" Three",
                   
" Four",
                   
" Five",
                   
" Six",
                    
" Seven",
                   
" Eight",
                   
" Nine"
           
};
    private static
String[] teen =
            {
" Ten",
                   
" Eleven",
                   
" Twelve",
                   
" Thirteen",
                    
" Fourteen",
                   
" Fifteen",
                   
" Sixteen",
                   
" Seventeen",
                   
" Eighteen",
                   
" Nineteen"
           
};
    private static
String[] tens =
            {
" Twenty",
                    
" Thirty",
                   
" Forty",
                   
" Fifty",
                   
" Sixty",
                   
" Seventy",
                   
" Eighty",
                   
" Ninety"
           
};
    private static
String[] maxs =
            {
"",
                   
"",
                   
" Hundred",
                   
" Thousand",
                   
" Lakh",
                   
" Crore"
           
};

    public
String convertNumberToWords(int n) {
       
input = numToString(n);
       
String converted = "";
        int
pos = 1;
        boolean
hun = false;
        while
(input.length() > 0) {
           
if (pos == 1) // TENS AND UNIT POSITION
           
{
               
if (input.length() >= 2) // TWO DIGIT NUMBERS
               
{
                    String temp =
input.substring(input.length() - 2, input.length());
                   
input = input.substring(0, input.length() - 2);
                   
converted += digits(temp);
               
} else if (input.length() == 1) // 1 DIGIT NUMBER
               
{
                    converted += digits(
input);
                   
input = "";
               
}
                pos++
;
           
} else if (pos == 2) // HUNDRED POSITION
           
{
                String temp =
input.substring(input.length() - 1, input.length());
               
input = input.substring(0, input.length() - 1);
                if
(converted.length() > 0 && digits(temp) != "") {
                    converted = (digits(temp) +
maxs[pos] + " and") + converted;
                   
hun = true;
               
} else {
                   
if
                   
(digits(temp) == "") ;
                    else
                       
converted = (digits(temp) + maxs[pos]) + converted;
                   
hun = true;
               
}
                pos++
;
           
} else if (pos > 2) // REMAINING NUMBERS PAIRED BY TWO
           
{
               
if (input.length() >= 2) // EXTRACT 2 DIGITS
               
{
                    String temp =
input.substring(input.length() - 2, input.length());
                   
input = input.substring(0, input.length() - 2);
                    if
(!hun && converted.length() > 0) converted = digits(temp) + maxs[pos] + " and" + converted;
                    else
{
                       
if (digits(temp) == "") ;
                        else
                           
converted = digits(temp) + maxs[pos] + converted;
                   
}
                }
else if (input.length() == 1) // EXTRACT 1 DIGIT
               
{
                   
if (!hun && converted.length() > 0)
                        converted = digits(
input) + maxs[pos] + " and" + converted;
                    else
{
                       
if (digits(input) == "") ;
                        else
                           
converted = digits(input) + maxs[pos] + converted;
                       
input = "";
                   
}
                }
                pos++
;
           
}
        }
       
return converted;
   
}

   
private String digits(String temp) // TO RETURN SELECTED NUMBERS IN WORDS
   
{
        String converted =
"";
        for
(int i = temp.length() - 1; i >= 0; i--) {
           
int ch = temp.charAt(i) - 48;
            if
(i == 0 && ch > 1 && temp.length() > 1)
                converted =
tens[ch - 2] + converted; // IF TENS DIGIT STARTS WITH 2 OR MORE IT FALLS UNDER TENS
           
else if (i == 0 && ch == 1 && temp.length() == 2) // IF TENS DIGIT STARTS WITH 1 IT FALLS UNDER TEENS
            
{
               
int sum = 0;
                for
(int j = 0; j < 2; j++)
                    sum = (sum *
10) + (temp.charAt(j) - 48);
                return
teen[sum - 10];
           
} else {
               
if (ch > 0)
                    converted =
units[ch] + converted;
           
} // IF SINGLE DIGIT PROVIDED
       
}
       
return converted;
   
}

   
private String numToString(int x) // CONVERT THE NUMBER TO STRING
   
{
        String num =
"";
        while
(x != 0) {
            num = ((
char) ((x % 10) + 48)) + num;
           
x /= 10;
       
}
       
return num;
   
}

   
private void inputNumber() {
        Scanner in =
new Scanner(System.in);
        try
{
           
//    System.out.print("Please enter number to Convert into Words : ");
           
num = in.nextInt();
       
} catch (Exception e) {
            System.
out.println("Number should be Less than 1 Bilion  ");
           
System.exit(1);
       
}
    }

   
public static void main(String[] args) {
        System.
out.println("Enter Number To Convart Words");
       
Main obj = new Main();
       
obj.inputNumber();
       
System.out.println("        input in Words :\n\n " + obj.convertNumberToWords(num));
       
System.out.println("\n COME ON LIKE IT !!");
   
}


}


    

Output


Enter Number To Convart Words

989

        input in Words :

 

  Nine Hundred and Eighty Nine

 

 COME ON LIKE IT !!

 

Process finished with exit code 0