Java » Java » Convertir un número a texto con Java abril 8, 2012 por Víctor por Víctor Cuervo Cuervo3 3 Comentarios
Imprimir
Vamos Vamos a ver como construir un métoo con Java Java al al cual le pasemos un número e tres í!itos" uniaes, ecenas # centenas # nos lo trans$orme a texto% &s ecir, el '3( nos lo trans$orme en )*uinientos treinta # cuatro), es el proceso e convertir un número a texto con Java Java%% +o primero para convertir un número a texto con Java Java ser ser crear métoos e apo#o% &l primer métoo e apo#o es el *ue ao una unia nos la trans$orma en texto%
1. public static String unidadEnTexto( unidadEnTexto(int int iNumero iNumero){ ){
2. // Método que dado un número me lo devuelve en texto
3.
4.
5.
.
!.
.
#.
switch( switch (iNumero){ iNumero){
case 1:
return "uno" "uno"; ;
case 2:
return "dos" "dos"; ;
case 3:
return "tres" "tres"; ;
1$.
case 4:
11.
12.
case 5:
13.
14.
case :
return "cuatro" "cuatro"; ;
return "cinco" "cinco"; ;
15.
1.
case !:
1!.
1.
case :
1#.
2$.
case #:
21.
22.
case $:
23.
return "seis";
return "siete";
return "ocho";
return "nue%e";
return "cero";
24. default:
25.
return "";
2. &
2!. &
&l si!uiente ser el e las ecenas% &s ecir, le pasaremos un número *ue represente las ecenas # nos evolver el texto% -i le pasamos un 2 nos evolver )veinte)%
1. public static String decenaEnTexto(int i'ecena){
2.
switch (i'ecena){
3.
case 1:
4.
5.
case 2:
return "die";
.
!.
case 3:
.
#.
return "%einte";
return "treinta";
case 4:
1$.
11.
case 5:
12.
13.
case :
14.
15.
case !:
1.
1!.
case :
1.
1#.
case #:
2$.
return "cuarenta";
return "cincuenta";
return "sesenta";
return "setenta";
return "ochenta";
return "no%enta";
21. default:
22.
23.
return "";
&
24. &
.oas las ecenas las poemos montar con el texto e la ecena # el texto e la unia, a/aieno un )#) en meio% sí 22 sería )veinte # os)% a# u n caso especial a tener en
cuenta # este es el e las ecenas el ie% sí *ue para ese caso nos montamos otro métoo e apo#o%
1. public static String decenas(int i'ecena){
2.
switch (i'ecena){
3.
case 11:
4.
5.
.
!.
.
#.
1$.
11.
12.
13.
14.
15.
1.
1!.
1.
1#.
return "once";
case 12:
return "doce";
case 13:
return "trece";
case 14:
return "catorce";
case 15:
return "uince";
case 1:
return "dieciseis";
case 1!:
return "diecisiete";
case 1:
case 1#:
return "dieciocho";
2$.
return "diecinue%e";
21. default:
22.
23.
return "";
&
24. &
lo último i!ual para las centenas% -i bien es vera *ue a*uí solo se nos evolver el relativo a los cientos, *uinientos # novecientos% a *ue para el testo e centenas lo poemos montar meiante la unia # a/aieno el su$i4o cientos% sí tenremos os5cientos, tres5 cientos,%%%
1. public static String centenaEnTexto(int i*entena){
2.
switch (i*entena){
3.
case 1:
4.
5.
case 5:
.
!.
return "ciento";
return "uinientos";
case #:
.
return "no%ecientos";
#. default:
1$.
11.
12. &
&
return "";
6ora solo nos *uea esmontar el número e ir llamano a las $unciones e apo#o necesarias% 7ara ir obtenieno por í!itos nos apo#amos en el mulo # ivisin e 10% a *ue el mulo nos e4a el í!ito # la ivisin el resto el número% sí, para las uniaes sería"
1. int i+nidad , iNumero-1$;
2. iNumero , iNumero1$;
3. sTexto , unidadEnTexto(i+nidad);
+a conversin e la unia 6a sio sencilla #a *ue solo 6emos tenio *ue llamar al métoo unia&n.exto% Vamos con las ecenas, para obtener la ecena el mismo mecanismo *ue antes%
1. int i'ecena , iNumero-1$;
2. iNumero , iNumero1$;
3.
4. i/ ((i+nidad,,$) 00 (i'ecena$))
5.
sTexto , decenaEnTexto(i'ecena);
. ese i/ (i'ecena,,1)
!.
sTexto , decenas(1$i+nidad);
. ese i/ (i'ecena 1)
#.
sTexto , decenaEnTexto(i'ecena) " " sTexto;
*ui tenemos tres casos% o
-i la unia era un cero, peimos la ecena # ser el texto único%
-i la ecena empiea por uno, caso especial # por lo tantto llamamos al métoo e las
o
ecenas% 9tros casos componemos con la ecena # la unia 4untas con un )#)%
o
&l último caso, las centenas%
1. int i*entena , iNumero-1$;
2.
3. i/ ((i*entena,1) 00 (i*entena,5) 00 (i*entena,#) 00 (i*entena,$))
4.
sTexto , unidadEnTexto(i*entena) "cientos" " " sTexto;
5. ese i/ ((i*entena,,1) 66 (i*entena,,5) 66 (i*entena,,#))
.
sTexto , centenaEnTexto(i*entena) " " sTexto;
&n este caso solo 6a# el ilema el 1, ' # :% sí *ue un i$ # solucionao% &l resto e las centenas las montamos con la unia en texto ms el texto )cientos)% sí, $inalmente, 6emos e4ao en s.exto el resultao e convertir un número a texto con Java
l!oritmo para Convertir ;úmeros a +etras 5 Ci!o $uente en Java Problema
1. package programas; 2. import java.util.Scanner; 3. 4. public class P01_numeros_a_letras { 5. 6.
public static void main(String! args" {
#. $.
String uni%a%es! &
'.
{cero) uno) %os )tres )cuatro )cinco )
10.
seis )siete )oc*o )nueve)%ie+,;
11.
String especiales! &
12.
{once) %oce)trece)catorce) -uince)
13.
%ie+ciseis) %iecisiete) %iecioc*o) %iecinueve,;
14.
String %ecenas! &
15.
{veinte) treinta)cuarenta)cincuenta) sesenta)
16. 1#.
setenta) oc*enta) noventa,;
1$.
Scanner scanner & new Scanner(Sstem.in";
1'.
Sstem.out.print(/ngrese un numero entre 0'' ";
20.
int num & scanner.net/nt(";
21. if (num&0 num11"
22. 23.
Sstem.out.print(7n 8 uni%a%esnum!"; else if (num20"
24. 25.
Sstem.out.print(7n 8 especialesnum11!"; else if (num100"{
26. 2#.
int uni% & num 9 10;
2$.
int %ec & num:10;
2'.
if (uni% && 0"
30.
Sstem.out.print(7n 8 %ecenas%ec2!"; else
31. 32.
Sstem.out.print(7n 8 %ecenas%ec2!
33.
8 8 uni%a%esuni%!";
34.
,
35.
else
36. 3#.
Sstem.out.print(l numero %e
3$. , 3#. 7u8ic static strin9 ToText(this int %aue) { 4$.
strin9 Num2Text , "";
41.
i/ (%aue $) return "menos " ath.<8s(%aue).ToText();
42. 43.
i/ (%aue ,, $) Num2Text , "cero";
44.
ese i/ (%aue ,, 1) Num2Text , "uno";
45.
ese i/ (%aue ,, 2) Num2Text , "dos";
4.
ese i/ (%aue ,, 3) Num2Text , "tres";
4!.
ese i/ (%aue ,, 4) Num2Text , "cuatro";
4.
ese i/ (%aue ,, 5) Num2Text , "cinco";
4#.
ese i/ (%aue ,, ) Num2Text , "seis";
5$.
ese i/ (%aue ,, !) Num2Text , "siete";
51.
ese i/ (%aue ,, ) Num2Text , "ocho";
52.
ese i/ (%aue ,, #) Num2Text , "nue%e";
53.
ese i/ (%aue ,, 1$) Num2Text , "die";
54.
ese i/ (%aue ,, 11) Num2Text , "once";
55.
ese i/ (%aue ,, 12) Num2Text , "doce";
5.
ese i/ (%aue ,, 13) Num2Text , "trece";
5!.
ese i/ (%aue ,, 14) Num2Text , "catorce";
5.
ese i/ (%aue ,, 15) Num2Text , "uince";
5#.
ese i/ (%aue 2$) Num2Text , "dieci" (%aue = 1$).ToText();
$.
ese i/ (%aue ,, 2$) Num2Text , "%einte";
1.
ese i/ (%aue 3$) Num2Text , "%einti" (%aue = 2$).ToText();
2.
ese i/ (%aue ,, 3$) Num2Text , "treinta";
3.
ese i/ (%aue ,, 4$) Num2Text , "cuarenta";
4.
ese i/ (%aue ,, 5$) Num2Text , "cincuenta";
5.
ese i/ (%aue ,, $) Num2Text , "sesenta";
.
ese i/ (%aue ,, !$) Num2Text , "setenta";
!.
ese i/ (%aue ,, $) Num2Text , "ochenta";
.
ese i/ (%aue ,, #$) Num2Text , "no%enta";
#.
ese i/ (%aue 1$$)
!$.
{
!1.
int u , %aue - 1$;
!2.
Num2Text , strin9.>ormat("{$& {1&"? ((%aue 1$) @ 1$).ToText()? (u ,, 1 A "un" : (%aue - 1$).ToText()));
!3.
&
!4.
ese i/ (%aue ,, 1$$) Num2Text , "cien";
!5.
ese i/ (%aue 2$$) Num2Text , "ciento " (%aue = 1$$).ToText();
!.
ese i/ ((%aue ,, 2$$) 66 (%aue ,, 3$$) 66 (%aue ,, 4$$) 66 (%aue ,, $$) 66 (%aue ,, $$))
!!.
Num2Text , ((%aue 1$$)).ToText() "cientos";
!.
ese i/ (%aue ,, 5$$) Num2Text , "uinientos";
!#.
ese i/ (%aue ,, !$$) Num2Text , "setecientos";
$.
ese i/ (%aue ,, #$$) Num2Text , "no%ecientos";
1.
ese i/ (%aue 1$$$) Num2Text , strin9.>ormat("{$& {1&"? ((%aue 1$$) @ 1$$).ToText()? (%aue - 1$$).ToText());
2.
ese i/ (%aue ,, 1$$$) Num2Text , "mi";
3.
ese i/ (%aue 2$$$) Num2Text , "mi " (%aue - 1$$$).ToText();
4.
ese i/ (%aue 1$$$$$$)
5.
{
.
Num2Text , ((%aue 1$$$)).ToText() " mi";
!.
i/ ((%aue - 1$$$) $) Num2Text , " " (%aue - 1$$$).ToText();
.
&
#.
ese i/ (%aue ,, 1$$$$$$) Num2Text , "un miBn";
#$.
ese i/ (%aue 2$$$$$$) Num2Text , "un miBn " (%aue 1$$$$$$).ToText();
#1.
ese i/ (%aue int.axCaue)
#2.
{
#3.
Num2Text , ((%aue 1$$$$$$)).ToText() " miones";
#4.
i/ ((%aue = (%aue 1$$$$$$) @ 1$$$$$$) $) Num2Text , " " (%aue = (%aue 1$$$$$$) @ 1$$$$$$).ToText();
#5.
&
#.
return Num2Text;
#!. &