使用JoptionPane接受来自用户的整数,并用JAVA中的单词显示整数.我的代码可以工作,但它一直单独显示数字


编辑问题该问题要求允许用户使用JAVA中的JOPtionpane进行从1到999的整数;并用文字显示这些整数。例如,如果用户输入13,程序应显示"0";十三";并循环要求用户输入另一个整数。如果用户输入0,则程序应退出。如果用户输入的整数大于999,程序应显示错误消息,并要求用户输入小于999的整数。这是我尝试过的代码。但是,它不可能发挥作用。感谢您的帮助。
import javax.swing.JOptionPane;
public class practice_9_1 {

public static void main(String[] args) {
int number;
String input_string= JOptionPane.showInputDialog("Please enter a number <1000 OR 0 to exit:  ");
number = Integer.parseInt(input_string);
while(number!=0){
if(number>0 && number<=999){
if(number < 0){
JOptionPane.showMessageDialog(null, "Please enter positive number greater than 0");
} else {
//                        System.out.println("NUMBER AFTER CONVERSION:t");
numberToWord(((number / 100) % 10), " HUNDRED");
numberToWord((number % 100), " ");
}
} else{
input_string= JOptionPane.showInputDialog("..DATA ERROR.. "
+"nplease enter a number <1000");
number = Integer.parseInt(input_string);
}

}
}
public static void numberToWord(int num, String val) {
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"};
if (num > 19) {
JOptionPane.showMessageDialog(null,tens[num / 10] + " " + ones[num % 10]);
} else {
JOptionPane.showMessageDialog(null, ones[num]);
}
//            if (num > 0) {
//              JOptionPane.showMessageDialog(null,val);
//            }
}
}

您在一个单独的方法调用中传递提醒和商,而是在numberToword方法中添加新参数并使用进行调用

numberToWord(((数字/100(%10(,";一百";,(数字/100((

public static void numberToWord(int num, String val, int num2) {
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" };
if (num2 > 19) {
JOptionPane.showMessageDialog(null, ones[num] + val + tens[num2 / 10] + " " + ones[num2 % 10]);
} else {
JOptionPane.showMessageDialog(null, ones[num] + val);
}
}