public class Speller { public static String spell(int number) { if (Constants.NUMBERS.containsKey(number)) { return Constants.NUMBERS.get(number); } else if (number < 100) { int tensDigit = number / 10; int unitDigit = number % 10; return Constants.NUMBERS.get(tensDigit * 10) + " " + Constants.NUMBERS.get(unitDigit); } else { int hundredDigit = number / 100; int modulo = number % 100; return Constants.NUMBERS.get(hundredDigit) + " " + Constants.HUNDRED + (modulo == 0 ? "" : " and " + spell(modulo)); } } }