• Sábado 21 de Septiembre de 2024, 16:10

Autor Tema:  Buscar un criterio en un vector de registros  (Leído 964 veces)

Hispasat88

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Buscar un criterio en un vector de registros
« en: Viernes 9 de Enero de 2009, 18:38 »
0
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.

tyrell

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Buscar un criterio en un vector de registros
« Respuesta #1 en: Sábado 10 de Enero de 2009, 14:24 »
0
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.