首页 > 文章列表 > Java程序输入数字,并以文字形式显示

Java程序输入数字,并以文字形式显示

java 输入 显示
443 2023-09-09

数字基本上以数字格式表示,或者是整数值。但为了发音,我们使用的是单词。每个数字都有独特的单词格式。

例如,1的单词格式是“One”。就像 2 的单词格式是“二”,3 的单词格式是“三”......等等。对于两位数字,数字格式略有不同。 21 代表“二十一”,45 代表“四十五”......等等。因此,对于所有类型的数字,都有一个唯一的单词格式可用。

向您展示一些实例

实例1

Input number is 15.
Word format of 15 = Fifteen

实例2

Input number is 123.
Word format of 123 = One Hundred Twenty-Three

实例3

Input number is 4532.
Word format of 4532 = Four Thousand Five Hundred Thirty-Two.

算法

Step-1 - 通过静态输入法获取输入的数字。

Step-2 - 声明一个字符串类型的数组并将数字存储在字符串中。

Step-3 - 然后我们声明一些其他字符串类型的数组,在其中存储不同类型数字的单词格式,例如一位数、两位数、百位和千位位置(这里我们只编写了最多四位数字的代码,您可以根据您的要求进一步扩展)。

Step-4 - 我们正在查找给定数字的长度。根据数字的长度,我们有不同的条件来连接数组的索引值。

Step-5 - 完成该过程后,我们打印该数字及其文字格式。

方法

我们通过不同的方式提供了解决方案。

  • 通过具有静态输入值的用户定义方法。

让我们一一看看该程序及其输出。

方法 - 通过使用用户定义的方法和静态输入值

在这种方法中,我们通过静态输入声明一些随机输入数字,并将这些数字作为参数传递到用户定义的方法中,然后在方法内部使用算法我们可以打印给定数字的文字格式。

示例

public class Main{
   public static void main(String args[]) {
      digitToWord("1234".toCharArray());
      digitToWord("557".toCharArray());
      digitToWord("45".toCharArray());
      digitToWord("2".toCharArray());
      digitToWord("0".toCharArray());
      digitToWord("801".toCharArray());
      digitToWord("54312".toCharArray());
      //passing empty string
      digitToWord("".toCharArray());
   }
   static void digitToWord(char n[]) {
      int len = n.length;
      if (len == 0) {
         System.out.println("Empty string.");
         return;
      }
      if (len > 4) {
         System.out.print(String.valueOf(n) + ": ");
         System.out.println("The number you have entered has more than four digits.");
         return;
      }
      String[] unitPlaceDig = new String[] {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
      String[] tensPlaceDig = new String[] {"", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"}; 
      String[] tensMultiplier = new String[] {"", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
      String[] powOfTens = new String[] {"Hundred", "Thousand"};
      System.out.print(String.valueOf(n) + ": ");
      if (len == 1){
         System.out.println(unitPlaceDig[n[0]-'0']);
         return;
      }
      int p = 0;
      while (p < n.length) {
         if (len >= 3){
            if (n[p] - '0' != 0) {
               System.out.print(unitPlaceDig[n[p] - '0'] + " ");
               System.out.print(powOfTens[len - 3]+ " ");
            }
            --len;
         }
         else {
            if (n[p] - '0' == 1) {
               int sum = n[p] - '0' + n[p + 1] - '0';
               System.out.println(tensPlaceDig[sum]);
               return;
            }
            else if (n[p] - '0' == 2 && n[p + 1] - '0' == 0) {
               System.out.println("Twenty");
               return;
            }
            else {
               int i = (n[p] - '0');
               if (i > 0)
               System.out.print(tensMultiplier[i]+ " ");
               else
               System.out.print("");
               ++p;
               if (n[p] - '0' != 0)
               System.out.println(unitPlaceDig[n[p] - '0']);
            } 
         }
         ++p;
      }
   }
}

输出

1234: One Thousand Two Hundred Thirty Four
557: Five Hundred Fifty Seven
45: Forty Five
2: Two
0: Zero
801: Eight Hundred One
54312: The number you have entered has more than four digits.
Empty string.

在本文中,我们探讨了如何在 Java 中接受数字输入并以文字显示该数字。