Título: al ingresar un numero como puedo hacer para que el mensaje sea en letras
Publicado por: fyn en 1 Mayo 2010, 17:43 pm
como realizar el ejercicio en java que al ingresar un numero de 0 a 99.999, el mensaje sea en letras
ejemplo: numero ingresado= 99 mensaje el numero es= noventa y nueve
Título: Re: al ingresar un numero como puedo hacer para que el mensaje sea en letras
Publicado por: Debci en 1 Mayo 2010, 19:42 pm
Amigo necesitas analizar sintacticamente las expresiones. Con ello repercute expresiones regulares y tal, me explico:
Detectar numero de cifras (supongamos 2) la primera será noventa, ochenta, setenta... la segunda será los numeros convencionales, osea uno, dos, se cojen las dos string y se apone una y, quedando Noventa y Nueve, en el caso de 15, 16, 17... se crea eespecificamente para estos y ya esta.
Esa seria la idea logica.
Saludos
Título: Re: al ingresar un numero como puedo hacer para que el mensaje sea en letras
Publicado por: sapito169 en 1 Mayo 2010, 20:51 pm
este es un problema dificil la recomendación que te hago es que no usas operaciones matemáticas solo trabaja el numero como cadena
Título: Re: al ingresar un numero como puedo hacer para que el mensaje sea en letras
Publicado por: 1mpuls0 en 2 Mayo 2010, 05:50 am
Tal vez pueda ayudarte con una parte del código... en unos 10 minutos a ver que hago
Título: Re: al ingresar un numero como puedo hacer para que el mensaje sea en letras
Publicado por: 1mpuls0 en 2 Mayo 2010, 05:51 am
Hola, yo lo hariá algo así import java.util.Scanner; public class NumberToLetter { private int num; // Almacena el número digitado por el usuario private int temp; // Almacena cocientes y residuos private int dM; // Decenas de mil private int uM; // Unidades de mil private int cen; // Centenas private int dec; // Decenas private int uni; // Unidades public static void main (String args []) { new NumberToLetter(); } public NumberToLetter() { Scanner entrada = new Scanner ( System. in ); System. out. print( "Digite un número entero de 5 dígitos: " ); num = entrada.nextInt(); if(num>10&&num<16) letter = specialCases(num); else if( num <= 99999) { dM = num / 10000; temp = num % 10000; uM = temp / 1000; temp = temp % 1000; cen = temp / 100; letter += centenesToLetter(cen)+" "; temp = temp % 100; dec = temp / 10; letter += desenesToLetter(dec); temp = temp % 10; uni = temp; if(uni>0) letter += " y " +unitatsToLetter(uni); else letter += unitatsToLetter(uni); } } private String unitatsToLetter (int num ){ if(num==1) letter="Uno"; if(num==2) letter="Dos"; if(num==3) letter="Tres"; if(num==4) letter="Cuatro"; if(num==5) letter="Cinco"; if(num==6) letter="Seis"; if(num==7) letter="Siete"; if(num==8) letter="Ocho"; if(num==9) letter="Nueve"; return letter; } private String desenesToLetter (int num ) { if(num==1) letter="Diez"; if(num==2) letter="Veinte"; if(num==3) letter="Treinta"; if(num==4) letter="Cuarenta"; if(num==5) letter="Cincuenta"; if(num==6) letter="Sesenta"; if(num==7) letter="Setenta"; if(num==8) letter="Ochenta"; if(num==9) letter="Noventa"; return letter; } private String centenesToLetter (int num ) { if(num==0) return ""; else if(num==1) letter="Ciento";// else if(num==5) letter="Quinientos";// else if(num==7) letter="Setecientos";// else if(num==9) letter="Novenientos"; // else { letter=unitatsToLetter(num)+"cientos"; } return letter; } private String specialCases (int num ){ if(num==11) letter="Once"; else if(num==12) letter="Doce"; else if(num==13) letter="Trece"; else if(num==14) letter="Catorce"; else if(num==15) letter="Quince"; return letter; } }
Lo hice algo rápido así que tiene algunos defectos :xD, pero tal vez pueda ayudarte. Un Saludo!
Título: Re: al ingresar un numero como puedo hacer para que el mensaje sea en letras
Publicado por: Debci en 2 Mayo 2010, 10:45 am
Es mas o menos como yo habia sugerido.
Saludos
Título: Re: al ingresar un numero como puedo hacer para que el mensaje sea en letras
Publicado por: Leyer en 2 Mayo 2010, 21:31 pm
No le hagas la terea :xD con lo que se dijo anteriormente es suficiente
|