Принятие целого числа от пользователя с помощью JOptionPane и отображение целого числа в словах на JAVA. Мой код работает, но он продолжает отображать числа отдельно

#java #integer

#java #целое

Вопрос:

Редактировать вопрос В вопросе предлагается разрешить пользователю вводить целые числа в диапазоне от 1 до 999, используя JOptionPane на JAVA; и отображать эти целые числа в словах. Например, если пользователь вводит 13, программа должна отображать «Тринадцать» и цикл, чтобы попросить пользователя ввести другие целые числа. Если пользователь вводит 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 amp;amp; 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);
//            }
        }
    }
  

Ответ №1:

Вы передаете напоминание и частное в отдельном вызове метода, вместо этого добавьте новый параметр в метод 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);
    }
}