当前位置: 首页 > 知识库问答 >
问题:

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

宗意蕴
2023-03-14

编辑问题:该问题要求用户使用JAVA中的JOPtionpane设置1到999之间的整数;并以文字显示这些整数。例如,如果用户输入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 && 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个答案

吕鸿朗
2023-03-14

您在一个单独的方法调用中传递提醒和商,相反,请向numberToword方法添加新参数,并使用

NumberToWord(((number/100)%10),"HUNDRED",(number%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);
    }
}
 类似资料:
  • 我正在使用一个从“标题”中搜索用户输入的搜索框。除此之外,我想仅在用户输入对应于“标题”列的情况下计算另一列“主题”中的一些关键字。但问题是如何找到我在查询中提到的仅有的单词的计数,即。 标题 因此,如果我在文本框中搜索了一个,那么我如何从主题中获得单词1的数量,其中标题字段中只有一个,然后其他单词的数量相似,这样我就可以得到如下输出: 您的搜索a包含: word1(3) word2(5) wor

  • 问题内容: 我试图显示一条带有整数的吐司消息这就是我试图做到的方式: 但这会使我的应用程序崩溃。感谢帮助! 问题答案: 将a 或an 作为其第二个参数。 但是,表示 资源ID (例如)。 应用程序崩溃可能是因为没有找到具有该ID的资源,因为它不是以ID开头的ID,而是任意整数。 在您的情况下,请使用。

  • 我正处于学习Java的开始阶段,并且有一个作业正在为我提供一些困难(我假设实际上并不困难)。 说明如下: “在一个名为MathCompations的类中,编写一个名为findMin的方法,该方法接受三个整数作为参数并返回三个值中最小的一个。例如,调用findMin(1,10,-1)将返回-1。您必须使用Math类min函数(它只接受2个参数)。在类中编写一个主方法,调用findMin(5,7,3)

  • 我已经编写了代码来在单独的行上打印整数的数字,但我没有得到预期的输出。相反,代码的输出是相反的顺序。如何在不使用 方法的情况下使输出正确? n = 234 输出为4,3,2 预期输出为2,3,4

  • 问题内容: 题 是否可以使Log4J显示其用于配置的文件的完整路径? 背景 我与log4j有爱恨交织的关系。在好的时候,它很棒,但是当它不起作用时,它可能是最难调试的事情之一。我管理应用程序中的所有日志记录。因此,我对日志记录和手册中定义的默认初始化过程非常熟悉。 不过,似乎每隔几周,记录就会中断,我花 了很多 时间来解决问题。 这次,它被严重破坏了。每个地方的每个日志语句都被转储到控制台中,我不

  • 问题内容: 我以前曾将Netbeans与Subversion(SVN)一起使用过,我喜欢它如何显示自上次提交以来我所做的更改,并使用了左边距的颜色。 Eclipse可以做同样的事情吗?我已经安装了Subclipse。 问题答案: 访问窗口->首选项->常规->编辑器->文本编辑器->快速差异,然后启用 启用快速差异 显示概览标尺的差异