Foros del Web » Programación para mayores de 30 ;) » Java »

Recorrer un Arreglo en Java (Buscar String)

Estas en el tema de Recorrer un Arreglo en Java (Buscar String) en el foro de Java en Foros del Web. Estoy haciendo una agenda telefónica en Java, guardo los contactos como líneas en un archivo de texto, separados por una pleca. Utilizo el SPLIT para ...
  #1 (permalink)  
Antiguo 13/06/2012, 16:47
Avatar de NatzMorel  
Fecha de Ingreso: junio-2012
Ubicación: Honduras
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Recorrer un Arreglo en Java (Buscar String)

Estoy haciendo una agenda telefónica en Java, guardo los contactos como líneas en un archivo de texto, separados por una pleca. Utilizo el SPLIT para dividir las lineas en campos y guardarlos en un arreglo.
Se necesita que al usuario ingresar el nombre de un contacto, el programa me muestre la información restante.
Esta es parte del código que tengo para recorrer el arreglo mientras busca por el nombre que el usuario ingreso. Si le dejo la condición no muestra nada, y si se la quito me imprime todos los contactos. Sé que no es gran complicación una vez teniendo el arreglo pero creo que después de tanto batallar me he bloqueado y simplemente no sale. No sé si lo estoy recorriendo mal o estoy formulando mal la condición o qué.

Agradeceré la ayuda que puedan brindarme al respecto.

Código:
System.out.print("Ingrese el nombre del contacto: ");
        String Buscar = Leer.nextLine();
        
        while ((linea = br.readLine())!=null) {
            String[] A = linea.split("/");
            String Nombre1="",Numero1="", Email1="";
            
            for (int x=0; x<A.length; x++){
                if(A[x].compareToIgnoreCase(Buscar)==0)
                    System.out.println(A[x]);
            }
        }
  #2 (permalink)  
Antiguo 13/06/2012, 18:06
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 12 años, 11 meses
Puntos: 34
Respuesta: Recorrer un Arreglo en Java (Buscar String)

Java es un lenguaje orientado a objetos por lo tanto lo poropio seria crear un objeto que represente a un Contacto, y hacer las operaciones necesarias para leerlos desde tu archivo y crear instancias de cada contacto.
Si fuera tu no guardaria los contactos en un .txt, los persisitiria mediante XML, JSON o YAML te recomiendo este ultimo por su gran facilidad.
  #3 (permalink)  
Antiguo 13/06/2012, 18:08
Avatar de NatzMorel  
Fecha de Ingreso: junio-2012
Ubicación: Honduras
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Recorrer un Arreglo en Java (Buscar String)

Pues es que me pidieron que fuera en un .txt, por esa razón es que lo hago así.
  #4 (permalink)  
Antiguo 13/06/2012, 18:09
Avatar de NatzMorel  
Fecha de Ingreso: junio-2012
Ubicación: Honduras
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Recorrer un Arreglo en Java (Buscar String)

Cita:
Iniciado por LuisChavezB Ver Mensaje
Java es un lenguaje orientado a objetos por lo tanto lo poropio seria crear un objeto que represente a un Contacto, y hacer las operaciones necesarias para leerlos desde tu archivo y crear instancias de cada contacto.
Si fuera tu no guardaria los contactos en un .txt, los persisitiria mediante XML, JSON o YAML te recomiendo este ultimo por su gran facilidad.
Pues es que me pidieron que fuera en un .txt, por esa razón es que lo hago así.
  #5 (permalink)  
Antiguo 13/06/2012, 18:17
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 12 años, 11 meses
Puntos: 34
Respuesta: Recorrer un Arreglo en Java (Buscar String)

En tal caso igual te recomiendo que antes de cualquier cosa leas el txt y crees instancias de cada contacto.
  #6 (permalink)  
Antiguo 13/06/2012, 18:33
Avatar de NatzMorel  
Fecha de Ingreso: junio-2012
Ubicación: Honduras
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Recorrer un Arreglo en Java (Buscar String)

Cita:
Iniciado por LuisChavezB Ver Mensaje
En tal caso igual te recomiendo que antes de cualquier cosa leas el txt y crees instancias de cada contacto.
Ay chamo, si es que no debo hacerlo. Las instrucciones son que debo guardar los contactos como líneas en un .txt y luego para hacer las búsquedas debo crear un arreglo. Logré hacerlo con el SPLIT pero igual sigo teniendo problemas, no logro que funcione.
  #7 (permalink)  
Antiguo 14/06/2012, 01:51
 
Fecha de Ingreso: abril-2012
Ubicación: Canarias
Mensajes: 41
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: Recorrer un Arreglo en Java (Buscar String)

Como comprenderás, si haces un equal en toda la línea que lees. Lo que buscas deberá coincidir EXACTAMENTE (sin mayúsculas o minúsculas) con la línea que estás leyendo. Es decir, si tu quieres buscar "hola Doctrina" y en la línea del .txt está "Hola Doctrina, buenos días" no lo encontrará.

Intenta con el método contains().
  #8 (permalink)  
Antiguo 14/06/2012, 01:54
 
Fecha de Ingreso: abril-2012
Ubicación: Canarias
Mensajes: 41
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: Recorrer un Arreglo en Java (Buscar String)

Como comprenderás, si haces un equal en toda la línea que lees. Lo que buscas deberá coincidir EXACTAMENTE (sin mayúsculas o minúsculas) con la línea que estás leyendo. Es decir, si tu quieres buscar "hola Doctrina" y en la línea del .txt está "Hola Doctrina, buenos días" no lo encontrará.

Intenta con el método contains().

PD: También puedes guardar los datos en archivos mediante la interfaz serializable, es decir, guardar en un archivo la instancia del objeto de la clase que hayas serializado. Creo que es más cómodo a la hora de estas cosas, aunque, dicho archivo serán bytes ilegibles por un ser humano.

Saludos.
  #9 (permalink)  
Antiguo 14/06/2012, 02:12
Avatar de NatzMorel  
Fecha de Ingreso: junio-2012
Ubicación: Honduras
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Recorrer un Arreglo en Java (Buscar String)

Cita:
Iniciado por Doctrina Ver Mensaje
Como comprenderás, si haces un equal en toda la línea que lees. Lo que buscas deberá coincidir EXACTAMENTE (sin mayúsculas o minúsculas) con la línea que estás leyendo. Es decir, si tu quieres buscar "hola Doctrina" y en la línea del .txt está "Hola Doctrina, buenos días" no lo encontrará.

Intenta con el método contains().

PD: También puedes guardar los datos en archivos mediante la interfaz serializable, es decir, guardar en un archivo la instancia del objeto de la clase que hayas serializado. Creo que es más cómodo a la hora de estas cosas, aunque, dicho archivo serán bytes ilegibles por un ser humano.

Saludos.
Muchísimas gracias, cambie eso y corrió de maravilla.
No sabía lo de guardar las instancias en .txt Averiguaré al respecto y veré qué sale.
Por los momentos, ya anda trabajando como debería y empezaré con la parte de Eliminar.
  #10 (permalink)  
Antiguo 14/06/2012, 02:19
 
Fecha de Ingreso: abril-2006
Mensajes: 27
Antigüedad: 18 años, 6 meses
Puntos: 6
Respuesta: Recorrer un Arreglo en Java (Buscar String)

La idea general del algoritmo que has montado no esta mal

Prueba a insertar unas lineas de traza para ver que cadenas de caracteres estas comparando realmente.

No me extrañaria que las palabras en el archivo de texto esten precedidas, o vayan seguidas de un espacio en blanco, y la cadena de busqueda carezca de el, y por eso sea diferente.

Para estar seguro tendria que ver un ejemplo de una linea del archivo de texto, para ver como guardar la informacion de cada contacto.
Código:
for (int x=0; x<A.length; x++) {
  System.out.println("Comparando #"+A[x]+"#<-->#"+Buscar+"#");  
  if(A[x].compareToIgnoreCase(Buscar)==0)
    System.out.println(A[x]);
}
Nota: Deberias acostumbrarte a usar los convenios de codificacion Java. Sera mas facil, a ti y a cualquiera, leer el codigo.

Etiquetas: programa, string, arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:30.