java - Java 中的数字到单词

标签 java bluej

我在 BlueJ 上做这个程序时遇到了困难。这是我的代码:

public class NumberToWords {
    public static void main(String[] args) {
        System.out.print("Number: ");
        int value = In.nextInt();
        int onesDigit;
        int tensDigit;
        String [] ones = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten",
            "eleven", "tweleve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};

        String [] tens = {"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};

        String [] hundreds = {"one hundred", "two hundred", "three hundred", "four hundred", "five hundred", 
            "six hundred", "seven hundred", "eight hundred", "nine hundred" }; 
  while(value != -1)
 {
   if (value < 20)
    {

        String result = ones[value];
        System.out.println("" + result);
        value = In.nextInt();
    }
   if (value > 20 && value < 100)
    {
        tensDigit = value/10;
        onesDigit = value%10;
        System.out.print("" + ones[onesDigit] + " " + tens[tensDigit]);
        value = In.nextInt();

    }
 }

}    
}

所以我的问题是,当我执行此操作时,当我输入第一个数字时,屏幕上仅出现一次“数字”一词。例如: 数量:1 => 1 和 2 => 两个 现在我想要“Number: 2”打印出2。有人可以看看我的代码是否有问题吗?谢谢!

最佳答案

以下代码应该可以帮助您获得所需的输出:

    public class NumberToWords  {
        public static void main(String[] args) {



            int onesDigit;
            int tensDigit;
            String [] ones = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten",
                "eleven", "tweleve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};

            String [] tens = {"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};

            String [] hundreds = {"one hundred", "two hundred", "three hundred", "four hundred", "five hundred", 
                "six hundred", "seven hundred", "eight hundred", "nine hundred" };
            System.out.print("Number: ");
          int value = In.nextInt();
      while(value != -1)
     {

       if (value < 20)
        {

            String result = ones[value];
            System.out.println("" + result);
            System.out.print("Number: ");
            value = In.nextInt();
        }
       if (value > 20 && value < 100)
        {
            tensDigit = value/10;
            onesDigit = value%10;
            System.out.print("" + ones[onesDigit] + " " + tens[tensDigit]);
            System.out.print("Number: ");
            value = In.nextInt();

        }
     }

    }    
    }

关于java - Java 中的数字到单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43164166/

相关文章:

Java读取文本文件中的每隔一行

java - 元音计数、重复法

java - 有没有 ?。 Java 运算符执行空指针检查?

java - 从 jar 中复制 Eclipse p2 接触点

java - table 上足球结果预测

java - 从 Libgdx Activity 转移到 Android Activity

java - BlueJ 字符串条件错误

java - Java 中出现很多错误,对角矩阵问题

java - 按姓氏和顺序对行进行排序

java - Mediaplayer 响应第二次点击暂停