Reputation: 7
I've been trying to convert user's given number to words up to 999 in one popup sentence, but I can't get it to do so. The words keeps separating into different pop ups and it's not quite correct, what am I doing wrong? Help is much appreciated.
import java.io.IOException;
import javax.swing.JOptionPane;
import java.util.*;
public class Program_6_2 {
public static void main(String[] args)
throws IOException {
int number;
int teen;
int digits;
number = Integer.parseInt(JOptionPane.showInputDialog("please enter a positive integer < 1000; or 0 to quit: "));
while (number != 0) {
if (number>=0 && number<=999) {
if (number == 0) {
JOptionPane.showMessageDialog(null, "Program Terminated");
}
String ones[] = {" ", " one", " two", " three", " four", " five", " six", " seven", " eight", " nine", " ten",
" eleven", " twelve", " thirteen", " fourteen", " fifteen", " sixteen", " seventeen", " eighteen", " nineteen"
};
String tens[] = {" ", " ", " twenty", " thirty", " fourty", " fifty", " sixty", " seventy", " eighty", " ninety"};
teen = number/10;
digits = number%10;
if (number >= 100 & number<=999) {
number = number/100;
JOptionPane.showMessageDialog(null, number + " hundred" );
}
if (number > 19) {
JOptionPane.showMessageDialog(null, tens[teen] + " " + ones[digits]);
} else {
JOptionPane.showMessageDialog(null, ones[number]);
}
// else if (number <=0 && number >=1000) {
//JOptionPane.showInputDialog(".... DATA ENTRY ERROR .... \n please enter a positive integer < 1000; or 0 to quit: ");
}
}
}
}
Upvotes: 1
Views: 425
Reputation: 542
Build your string answer first, then display it.
StringBuffer numberString = new StringBuffer();
if (number >= 100 & number<=999) {
numberString.append(number/100).append(" hundred");
number = number%100;
}
if (number > 19) {
numberString.append(tens[number/10]).append(" ").append(ones[number%10]);
} else {
numberString.append(ones[number%10]);
}
JOptionPane.showMessageDialog(null, numberString.toString());
}
Upvotes: 1