Java (convertir numeros a letras)

8
Java » Convertir un número a texto con Java abril 8, 2012 por Víctor Cuervo3 Comentarios Imprimir Vamos a ver como construir un método con Java al cual le pasemos un número de tres dígitos: unidades, decenas y centenas y nos lo transforme a texto. Es decir, el 534 nos lo transforme en "quinientos treinta y cuatro", es el proceso de convertir un número a texto con Java. Lo primero para convertir un número a texto con Java será crear métodos de apoyo. El primer método de apoyo es el que dado una unidad nos la transforma en texto. 1. public static String unidadEnTexto(int iNumero){ 2. // Método que dado un número me lo devuelve en texto 3. switch(iNumero){ 4. case 1: 5. return "uno"; 6. case 2: 7. return "dos"; 8. case 3: 9. return "tres"; 10. case 4: 11. return "cuatro"; 12. case 5: 13. return "cinco"; 14. case 6: 15. return "seis"; 16. case 7: 17. return "siete"; 18. case 8: 19. return "ocho"; 20. case 9: 21. return "nueve"; 22. case 0: 23. return "cero";

description

Como convertir numeros a letras

Transcript of Java (convertir numeros a letras)

JavaConvertir un nmero a texto con Javaabril 8, 2012 porVctor Cuervo3 ComentariosImprimirVamos a ver como construir un mtodo conJavaal cual le pasemos un nmero de tres dgitos: unidades, decenas y centenas y nos lo transforme a texto. Es decir, el 534 nos lo transforme en "quinientos treinta y cuatro", es el proceso de convertir un nmero a texto conJava.Lo primero para convertir un nmero a texto conJavaser crear mtodos de apoyo. El primer mtodo de apoyo es el que dado una unidad nos la transforma en texto.1. public static String unidadEnTexto(int iNumero){2. // Mtodo que dado un nmero me lo devuelve en texto3. switch(iNumero){4. case 1:5. return "uno";6. case 2:7. return "dos";8. case 3:9. return "tres";10. case 4:11. return "cuatro";12. case 5:13. return "cinco";14. case 6:15. return "seis";16. case 7:17. return "siete";18. case 8:19. return "ocho";20. case 9:21. return "nueve";22. case 0:23. return "cero";24. default:25. return "";26. }27. }El siguiente ser el de las decenas. Es decir, le pasaremos un nmero que represente las decenas y nos devolver el texto. Si le pasamos un 2 nos devolver "veinte".1. public static String decenaEnTexto(int iDecena){2. switch (iDecena){3. case 1:4. return "diez";5. case 2:6. return "veinte";7. case 3:8. return "treinta";9. case 4:10. return "cuarenta";11. case 5:12. return "cincuenta";13. case 6:14. return "sesenta";15. case 7:16. return "setenta";17. case 8:18. return "ochenta";19. case 9:20. return "noventa";21. default:22. return "";23. }24. }Todas las decenas las podemos montar con el texto de la decena y el texto de la unidad, aadiendo un "y" en medio. As 22 sera "veinte y dos". Hay un caso especial a tener en cuenta y este es el de las decenas del diez. As que para ese caso nos montamos otro mtodo de apoyo.1. public static String decenas(int iDecena){2. switch (iDecena){3. case 11:4. return "once";5. case 12:6. return "doce";7. case 13:8. return "trece";9. case 14:10. return "catorce";11. case 15:12. return "quince";13. case 16:14. return "dieciseis";15. case 17:16. return "diecisiete";17. case 18:18. return "dieciocho";19. case 19:20. return "diecinueve";21. default:22. return "";23. }24. }Y lo ltimo igual para las centenas. Si bien es verdad que aqu solo se nos devolver el relativo a los cientos, quinientos y novecientos. Ya que para el testo de centenas lo podemos montar mediante la unidad y aadiendo el sufijo cientos. As tendremos dos-cientos, tres-cientos,...1. public static String centenaEnTexto(int iCentena){2. switch (iCentena){3. case 1:4. return "ciento";5. case 5:6. return "quinientos";7. case 9:8. return "novecientos";9. default:10. return "";11. }12. }Ahora solo nos queda desmontar el nmero e ir llamando a las funciones de apoyo necesarias. Para ir obteniendo por dgitos nos apoyamos en el mdulo y divisin de 10. Ya que el mdulo nos deja el dgito y la divisin el resto del nmero.As, para las unidades sera:1. int iUnidad = iNumero%10;2. iNumero = iNumero/10;3. sTexto = unidadEnTexto(iUnidad);La conversin de la unidad ha sido sencilla ya que solo hemos tenido que llamar al mtodo unidadEnTexto.Vamos con las decenas, para obtener la decena el mismo mecanismo que antes.1. int iDecena = iNumero%10;2. iNumero = iNumero/10;3. 4. if ((iUnidad==0) && (iDecena>0))5. sTexto = decenaEnTexto(iDecena);6. else if (iDecena==1)7. sTexto = decenas(10+iUnidad);8. else if (iDecena > 1)9. sTexto = decenaEnTexto(iDecena) + " y " + sTexto;Aqui tenemos tres casos. Si la unidad era un cero, pedimos la decena y ser el texto nico. Si la decena empieza por uno, caso especial y por lo tantto llamamos al mtodo de las decenas. Otros casos componemos con la decena y la unidad juntas con un "y".El ltimo caso, las centenas.1. int iCentena = iNumero%10;2. 3. if ((iCentena!=1) && (iCentena!=5) && (iCentena!=9) && (iCentena!=0))4. sTexto = unidadEnTexto(iCentena) + "cientos" + " " + sTexto;5. else if ((iCentena==1) || (iCentena==5) || (iCentena==9))6. sTexto = centenaEnTexto(iCentena) + " " + sTexto;En este caso solo hay el dilema del 1, 5 y 9. As que un if y solucionado. El resto de las centenas las montamos con la unidad en texto ms el texto "cientos".As, finalmente, hemos dejado en sTexto el resultado de convertir un nmero a texto conJava

Algoritmo para Convertir Nmeros a Letras - Cdigo fuente en JavaProblemaDesarrollar un programa donde se ingrese un nmero y lo convierta en letras.SolucinEsta programa solo acepta nmeros que van desde el cero al noventa y nueve, el usuario ingresa un nmero y la aplicacin retornara dicho nmero convertido en letras.Ejemplo - Entrada: 41 - Salida: cuarenta y uno.Cdigo Fuente en Javaview plainprint?1. packageprogramas;2. importjava.util.Scanner;3. 4. publicclassP01_numeros_a_letras{5. 6. publicstaticvoidmain(String[]args){7. 8. Stringunidades[]=9. {"cero","uno","dos","tres","cuatro","cinco",10. "seis","siete","ocho","nueve","diez"};11. Stringespeciales[]=12. {"once","doce","trece","catorce","quince",13. "diezciseis","diecisiete","dieciocho","diecinueve"};14. Stringdecenas[]=15. {"veinte","treinta","cuarenta","cincuenta","sesenta",16. "setenta","ochenta","noventa"};17. 18. Scannerscanner=newScanner(System.in);19. System.out.print("Ingreseunnumeroentre0-99:");20. intnum=scanner.nextInt();21. 22. if(num>=0&&num