public class WordsFromDigitsRecursionDemo
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: