Source of WordsFromDigitsRecursionDemo.java


  1: //WordsFromDigitsRecursionDemo.java
  2: 
  3: import java.util.Scanner;
  4: 
  5: public class WordsFromDigitsRecursionDemo
  6: {
  7:     public static void main(String[] args)
  8:     {
  9:          System.out.print("\nEnter a positive integer: ");
 10:          Scanner keyboard = new Scanner(System.in);;
 11:          int number = keyboard.nextInt();
 12:          System.out.println("\nThe digits in that integer are:");
 13:          displayAsWords(number);
 14:          System.out.println();
 15:          
 16:          System.out.println("\nIf you add ten to that integer, ");
 17:          System.out.println("the digits in the new integer are:");
 18:          number = number + 10;
 19:          displayAsWords(number);
 20:          System.out.println();
 21:     }
 22: 
 23:     /**
 24:     Precondition: number >= 0
 25:     Displays the digits in number as words.
 26:     */
 27:     public static void displayAsWords(int number)
 28:     {
 29:         if (number < 10)
 30:             System.out.print(getWordFromDigit(number) + " ");
 31:         else //number has two or more digits
 32:         {
 33:             displayAsWords(number / 10);
 34:             System.out.print(getWordFromDigit(number % 10) + " ");
 35:         }
 36:     }
 37:     
 38:     /**
 39:     Precondition: 0 <= digit <= 9
 40:     Returns the word for the argument digit.
 41:     */
 42:     private static String getWordFromDigit(int digit)
 43:     {
 44:         String result = null;
 45:         switch (digit)
 46:         {
 47:             case 0: result = "zero";  break;
 48:             case 1: result = "one";   break;
 49:             case 2: result = "two";   break;
 50:             case 3: result = "three"; break;
 51:             case 4: result = "four";  break;
 52:             case 5: result = "five";  break;
 53:             case 6: result = "six";   break;
 54:             case 7: result = "seven"; break;
 55:             case 8: result = "eight"; break;
 56:             case 9: result = "nine";  break;
 57:             default:
 58:                 System.out.println("Fatal Error.");
 59:                 System.exit(0);
 60:             break;
 61:         }
 62:         return result;
 63:     }
 64: }
 65: