Esto es "pseudojava", pero traducirlo a "pure java" es sencillo. Faltaría tratar los casos especiales como el "once", "doce"... pero de todas maneras creo que así queda más sencillo
Código:
public static String[] literales =
[
["", "uno", "dos", "tres",..., "nueve"],
["", "diez", "veinte", ... "noventa"],
["", "ciento", "doscientos", "trescientos"...],
...
]
public static String tranforma(int num){
int cont = 0;
int div = num;
String res = "";
while ( div > 0){
res = literales[cont][div % 10] + res;
div = int / 10;
//esto se ha de truncar a int... pero ahora mismo no recuerdo como se hacía
cont ++;
}
return(res);
}