Machine Problem
Create a program
that converts numbers to words using Java programming language.
My email address is jakerpomperada@gmail.com and jakerpomperada@yahoo.com
Program Listing
/* Number_Words.java
* Mr. Jake Rodriguez Pomperada,MAED-IT, MIT
* www.jakerpomperada.com www.jakerpomperada.blogspot.com
* jakerpomperada@gmail.com
* Bacolod City, Negros Occidental Philippines
*/
import java.util.Scanner;
public class Number_Words {
public static void main(String[] args) {
int number = 0;
Scanner input = new Scanner(System.in);
boolean valid;
do {
System.out.println();
System.out.print("\tNumber To Words in Java\n\n");
System.out.print("Enter Number: ");
number = input.nextInt();
valid = (number >= 1 && number <= 100000);
System.out.println();
if (number > 100000) {
System.out.print("Number is out of range!\n");
} else if (!valid) {
System.out.println("Negative numbers, zero, and numbers greater than 100,000 are invalid input.");
}
else {
System.out.print(numberToWord(number));
}
}while (!valid);
System.out.println("\n");
System.out.println("End of Program");
input.close();
}
private static String numberToWord(int number) {
String words = "";
String unitsArray[] = { "zero", "one", "two", "three", "four", "five", "six",
"seven", "eight", "nine", "ten", "eleven", "twelve",
"thirteen", "fourteen", "fifteen", "sixteen", "seventeen",
"eighteen", "nineteen" };
String tensArray[] = { "zero", "ten", "twenty", "thirty", "forty", "fifty",
"sixty", "seventy", "eighty", "ninety" };
if (number == 0) {
return "zero";
}
if (number < 0) {
String numberStr = "" + number;
numberStr = numberStr.substring(1);
return "minus " + numberToWord(Integer.parseInt(numberStr));
}
if ((number / 1000) > 0) {
words += numberToWord(number / 1000) + " thousand ";
number %= 1000;
}
if ((number / 100) > 0) {
words += numberToWord(number / 100) + " hundred ";
number %= 100;
}
if (number > 0) {
if (number < 20) {
words += unitsArray[number];
} else {
words += tensArray[number / 10];
if ((number % 10) > 0) {
words += "-" + unitsArray[number % 10];
}
}
}
return words;
}
}
No comments:
Post a Comment