JAVA

Write a program to represent the given number in words


//Range of conversion is less than or equal to range of integer

import java.util.*;

class Words {
String ones[] = {
"",
"One",
"Two",
"Three",
"Four",
"Five",
"Six",
"Seven",
"Eight",
"Nine",
"Ten",
"Eleven",
"Twelve",
"Thirteen",
"Fourteen",
"Fifteen",
"Sixteen",
"Seventeen",
"Eighteen",
"Nineteen"
};

String tens[] = {
"",
"Ten",
"Twenty",
"Thirty",
"Forty",
"Fifty",
"Sixty",
"Seventy",
"Eighty",
"Ninety",
};

String amt[] = {
"",
"Thousand",
"Million",
"Billion",
};
}

class Numbers extends Words {
String number;

Scanner sc = new Scanner(System.in);

Numbers() {
System.out.print("Enter number : ");
number = sc.nextLine();
}
}

class Convert extends Numbers {
int num;
String word = " ";
int array[] = new int[5]; 

Convert() {
num = Integer.parseInt(this.number);
}

void dividesNumber() {
int i;
String _word = "";

for(i = 0; num != 0; i++) {
int digit;
digit = num % 1000;
array[i] = digit;
num = num / 1000;
}

for(int j = (i-1); j >= 0 ; j--) {
_word = numberToWord(array[j], j);
}

System.out.println();
System.out.println("=> " + _word);
}

String numberToWord(int digit, int n) {
if(digit > 0 && digit < 20) {
word = word + ones[digit] + " " + amt[n] + " "; 
}

else if(digit > 19 && digit < 100) {
word = word + tens[(digit - (digit%10))/10] + " " + ones[digit%10] + " " + amt[n] + " ";
}

else if(digit > 99 && digit < 1000) {
word = word + ones[(digit - (digit%100))/100] + " Hundred ";
if((digit % 100) < 20) {
word = word + ones[digit%100] + " "; 
}
else {
word = word + tens[((digit%100) - (digit%10))/10] + " " + ones[digit%10] + " ";
}
word = word + amt[n] + " ";
}

return word;
}
}

class NumberConversion {
public static void main(String args[]) {
Convert n1 = new Convert();

n1.dividesNumber();
}
}

Output : 


Post a Comment

0 Comments