Source of WordsFromDigitsIterativeDemo.java


  1: //WordsFromDigitsIterativeDemo.java
  2: 
  3: import java.util.Scanner;
  4: 
  5: public class WordsFromDigitsIterativeDemo
  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:         int divisor = getPowerOfTen(number);
 30:         int next = number;
 31:         while (divisor >= 10)
 32:         {
 33:             System.out.print(getWordFromDigit(next / divisor) + " ");
 34:             next = next % divisor;
 35:             divisor = divisor / 10;
 36:         }
 37:         System.out.print(getWordFromDigit(next / divisor) + " ");
 38:     }
 39: 
 40:     //Precondition: n >= 0. 
 41:     //Returns 10 raised to a power one less than the number of digits in n.
 42:     private static int getPowerOfTen(int n)
 43:     {
 44:         int result = 1;
 45:         while (n >= 10)
 46:         {
 47:            result = result * 10;
 48:            n = n / 10;
 49:         }
 50:         return result;
 51:     }
 52: 
 53:     //Precondition: 0 <= digit <= 9
 54:     //Returns the word for the argument digit.
 55:     private static String getWordFromDigit(int digit)
 56:     {
 57:         String result = null;
 58:         switch (digit)
 59:         {
 60:             case 0: result = "zero";  break;
 61:             case 1: result = "one";   break;
 62:             case 2: result = "two";   break;
 63:             case 3: result = "three"; break;
 64:             case 4: result = "four";  break;
 65:             case 5: result = "five";  break;
 66:             case 6: result = "six";   break;
 67:             case 7: result = "seven"; break;
 68:             case 8: result = "eight"; break;
 69:             case 9: result = "nine";  break;
 70:             default:
 71:                 System.out.println("Fatal Error.");
 72:                 System.exit(0);
 73:             break;
 74:         }
 75:         return result;
 76:     }
 77: }
 78: