• Viernes 29 de Marzo de 2024, 07:39

Autor Tema:  Numeros a letras  (Leído 2836 veces)

gigi25

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Numeros a letras
« en: Sábado 19 de Octubre de 2013, 07:39 »
0
Hola!! les agradeceria muchisimo si me ayudan tantito en un programa. Soy novato, apenas estoy aprendiendo. Tengo que hacer un programa que convierta de numeros a letras, puedo usar switch y arreglos. Este es el que he estado haciendo, pero me marca un error y no estoy segura de porque.

Código: Java(TM) 2 Platform Standard Edition 5.0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package Numletras;
  6. import java.util.Scanner;
  7. /**
  8.  *
  9.  * @author jhsd
  10.  */
  11. public class Numletras {
  12.  
  13.     /**
  14.      * @param args the command line arguments
  15.      */
  16.     public static void main(String[] args) {
  17.          int largo=0, NUM=0,U=0,D=0,C=0;
  18.         String num="";
  19.         String [] u=new String [10];
  20.         u [0]="cero";
  21.         u [1]="uno";
  22.         u [2]="dos";
  23.         u [3]="tres";
  24.         u [4]="cuatro";
  25.         u [5]="cinco";
  26.         u [6]="seis";
  27.         u [7]="siete";
  28.         u [8]="ocho";
  29.         u [9]="nueve";
  30.         String [] esp=new String [5];
  31.         esp [0]="once";
  32.         esp [1]="doce";
  33.         esp [2]="trece";
  34.         esp [3]="catorce";
  35.         esp [4]="quince";
  36.         String [] d=new String [10];
  37.         d [0]="";
  38.         d [1]="dieci";
  39.         d [2]="veinti";
  40.         d [3]="treinta";
  41.         d [4]="cuarenta";
  42.         d [5]="cincuenta";
  43.         d [6]="sesenta";
  44.         d [7]="setenta";
  45.         d [8]="ochenta";
  46.         d [9]="noventa";
  47.         String [] c=new String [9];
  48.         c [0]="ciento";
  49.         c [1]="doscientos";
  50.         c [2]="trescientos";
  51.         c [3]="cuatrocientos";
  52.         c [4]="quinientos";
  53.         c [5]="seiscientos";
  54.         c [6]="setecientos";
  55.         c [7]="ochocientos";
  56.         c [8]="novecientos";
  57.        
  58.         Scanner leer=new Scanner (System.in);
  59.         System.out.println("Proporcionar numero");
  60.         num=leer.nextLine();
  61.         largo=num.length();
  62.         NUM=Integer.parseInt(num);
  63.          if(largo==1){
  64.                     System.out.printf("\n"+u[NUM]);
  65.          }
  66.          if(largo==2){
  67.              if(NUM==10){
  68.                  System.out.printf("diez\n");
  69.              }
  70.              if(NUM==20){
  71.                  System.out.printf("veinte\n");
  72.              }
  73.              if(NUM<=15){
  74.                  System.out.printf(" "+esp[NUM-11]);
  75.              }
  76.              if(NUM>15){
  77.                 U=num.charAt(0);
  78.                 D=num.charAt(1);
  79.              System.out.printf(" "+d[D]+"y"+u[U]);
  80.              }
  81.          }
  82.          if (largo==3){
  83.              if(NUM==100){
  84.                  System.out.printf("cien\n");
  85.              }
  86.             U=num.charAt(0);
  87.             D=num.charAt(1);
  88.             C=num.charAt(2);
  89.              System.out.printf(" "+c[C-1]+" "+d[D]+"y"+u[U]);
  90.          }
  91.          if (largo==4){
  92.              System.out.printf("mil\n");
  93.          }
  94.         // TODO code application logic here
  95.     }
  96. }
  97.  

Este es el error que me marca:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 52
   at numletras.Numletras.main(Numletras.java:79)
Java Result: 1

Como ya dije, les agradeceria en el alma que me ayudaran. Segun yo la logica esta bien, pero como dije, soy un novato y me siento que no se nada.
« última modificación: Lunes 21 de Octubre de 2013, 03:05 por gigi25 »

grandzam

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re:Numeros a letras
« Respuesta #1 en: Lunes 28 de Octubre de 2013, 23:37 »
0
Ese error se refiere a que estas queriendo acceder a una posición del arreglo que no existe.

5alud.