SoloCodigo

Programación General => Java => Mensaje iniciado por: Hispasat88 en Viernes 9 de Enero de 2009, 18:38

Título: Buscar un criterio en un vector de registros
Publicado por: Hispasat88 en Viernes 9 de Enero de 2009, 18:38
Hola a todos,

Mi nota era para ver si alguien sabe, una vez creado e inicializado un vector de registros, buscar, en todo el vector, y en todos los campos de los registros, un criterio introducido por teclado. Yo ya he implementado una manera, que me muestra el contacto, pero me produce una excepcion al final de la ejecucion. Este es mi codigo:
Código: Text
  1.  
  2. public static void buscaCriterio(Contacto[] vectorBase, String palabra){
  3.         for(int d=0;d<=vectorBase.length;d++){
  4.             if(vectorBase[d].nombre.equals(palabra)){
  5.                 System.out.print("Este es el contacto:" +vectorBase[d].nombre);
  6.             }
  7.             else{
  8.                 if(vectorBase[d].apellido1.equals(palabra)){
  9.                     System.out.print("Este es el contacto:" +vectorBase[d].nombre);
  10.                     break;
  11.                 }
  12.                 else{
  13.                     if(vectorBase[d].apellido2.equals(palabra)){
  14.                         System.out.print("Este es el contacto:" +vectorBase[d].nombre);
  15.                         break;
  16.                     }
  17.                     else{
  18.                         if(vectorBase[d].comentarios.equals(palabra)){
  19.                             System.out.print("Este es el contacto:" +vectorBase[d].nombre);
  20.                             break;
  21.                         }
  22.                         else{
  23.                             if(vectorBase[d].grupo.equals(palabra)){
  24.                                 System.out.print("Este es el contacto:" +vectorBase[d].nombre);
  25.                                 break;
  26.                             }
  27.                             else{
  28.                                 if(vectorBase[d].correo.equals(palabra)){
  29.                                     System.out.println("Este es el contacto: "+vectorBase[d].nombre);
  30.                                     break;
  31.                                 }
  32.                                 else{
  33.                                     int numero=Integer.parseInt(palabra);
  34.                                     if(vectorBase[d].movil==numero){
  35.                                         System.out.print("Este es el contacto:" +vectorBase[d].nombre);
  36.                                         break;
  37.                                     }
  38.                                     else{
  39.                                         if(vectorBase[d].fijo==numero){
  40.                                             System.out.print("Este es el contacto:" +vectorBase[d].nombre);
  41.                                             break;
  42.                                         }
  43.                                     }
  44.                                 }
  45.                             }
  46.                         }
  47.                     }
  48.                 }
  49.             }
  50.         }
  51.     }
  52.  

Si alguien sabe alguna manera mejor, por favor que me la diga.

Gracias a todos.
Título: Re: Buscar un criterio en un vector de registros
Publicado por: tyrell en Sábado 10 de Enero de 2009, 14:24
La excepcion es por la declaracion del for que te sales del rango del vector.
for(int d=0;d<=vectorBase.length;d++)

Si tu vector es de 10 elementos por ejemplo al empezar de 0 y d sea menor o igual que 10 significa que haras 11 pasadas.
Cambialo por esto:
for(int d=0;d<vectorBase.length;d++)
No deberia tirar excepcion ahora.