Java程式:將數字輸入為數字並以文字顯示


數字通常以數字格式表示,或者它們是整數。但是,為了發音,我們使用文字。每個數字都有唯一的文字格式。

例如,1 的文字格式是“一”。類似地,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.

演算法

步驟-1 − 透過靜態輸入方法獲取輸入數字。

步驟-2 − 宣告一個字串型別的陣列並將數字儲存在字串中。

步驟-3 − 然後我們宣告一些其他字串型別的陣列,在其中我們儲存不同型別數字的文字格式,例如一位數、兩位數、百位和千位(這裡我們只編寫了最多四位數的程式碼,您可以根據需要進一步擴充套件)。

步驟-4 − 我們正在查詢給定數字的長度。根據數字的長度,我們有不同的條件來連線陣列的索引值。

步驟-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 中獲取數字輸入並以文字形式顯示該數字。

更新於: 2022-12-27

3K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.