java - 将用户输入的数字转换为单词

标签 java string loops int

我一直在尝试将用户给定的数字转换为一个弹出句子中最多 999 个单词,但我无法做到这一点。这些单词不断分成不同的弹出窗口,而且不太正确,我做错了什么?非常感谢您的帮助。

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: ");

         }
      }
   }
}

最佳答案

首先构建字符串答案,然后显示它。

            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());

        }

关于java - 将用户输入的数字转换为单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58143193/

相关文章:

java - GWT- CellTable--设置行突出显示的问题

java - 如何使用JPA验证数据库中是否存在具有某些字段值的记录?

C# 仅使用字符串添加大数字?

Python复杂的正则表达式字符串扩展

java - 我的涉及字符位置的 do-while 循环有问题

java - 分析Java PS Old Gen和可能的内存泄漏

java - 复合设计模式图草图

html - 将文本粘贴到 UIWebView/网站

java - 在java中打破txt文件

php - 为什么代码进入无限循环? (