¿Como buscar dentro de un arreglo?

Iniciado por greenselves, 15 Marzo 2011, 04:02 AM

0 Miembros y 1 Visitante están viendo este tema.

greenselves

Hola! estoy haciendo un programa donde quiero buscar un valor dentro de un arreglo, esto dentro de un  metodo de una clase.

Código (cpp) [Seleccionar]
[code=java]

public void colocar (String buscar) {

for ( i=0, i< arreglo.length; i++ )
if ( this.nombre == buscar )

}

}
[/code]

nombre es el valor que quiero buscar.

Greenselves

.mokk.

Código (java) [Seleccionar]
public void colocar (String [] buscar)
{

    for(String arreglo:buscar)
    {
        if( this.nombre == arreglo )
        {
            System.out.println("Se encontro");
        }
    }

}


Supongo que podria hacerse asi no?

greenselves

Olvide  comentar que el arreglo es bidimensional.

EL codigo que me pasaste lo he modificado a esto:

Código (java) [Seleccionar]
[code]public void colocar (String [][] buscar)
{

    for(String arreglo:buscar)
    {
        if( this.nombre == arreglo )
        {
            System.out.println("Se encontro");
        }
    }

}
[/code]

Pero me sale el siguiente error:

Reynas_3.java:26: incompatible types
found   : java.lang.String[]
required: java.lang.String
    for(String arreglo:buscar)
                       ^
Reynas_3.java:64: colocar(java.lang.String[][]) in Casilla cannot be applied to (java.lang.String)
      casilla[j].colocar (local);
                   ^
2 errors


ESta es la parte en el main en donde envio la cadena a buscar:

Código (java) [Seleccionar]
[code]for ( i=0; i<2; i++ )

for ( j=0; j<2; j++ )

casilla[i][j].colocar (local);
[/code]
Greenselves

.mokk.

#3
Bueno ya veo como va la cosa (creo), pero si el arreglo es bidimensional, lo que decearia saber que es la variable local
for ( i=0; i<2; i++ )

for ( j=0; j<2; j++ )

casilla[i][j].colocar (local);

Ahi la estas usando y es lo que envias al metodo, pero que es lo que contiene ?
a como yo veo si en el arreglo a buscar es en el de casilla podria hacerse asi

Main
Código (java) [Seleccionar]

colocar(casilla);


colocar
Código (java) [Seleccionar]

private static void colocar (String [][] buscar)
{
    for(int i=0;i<buscar.length;i++)
    {
        for(int x=0;x<buscar[i].length;x++)
        {
            if( this.nombre == buscar[i][x] )
                System.out.println("Se encontro");
        }
    }
}


Ya si no es asi, si pudieses poner todo el codigo del main estaria mejor asi se ve que tipo son y lo que se intenta hacer.

1mpuls0

#4
MAL!

Estoy en horario de trabajo y no tengo mucho tiempo de explicar, pero me dio tiempo de hace un ejemplo.

1. Para comparar String no es de esa manera.
2. arreglo:buscar. Vienes de C?

Código (java) [Seleccionar]

/**
* @(#)BusquedaBidimensional.java
*
*
* @author 1mpuls0
* @version 1.00 2011/3/15
*/


public class BusquedaBidimensional {

public static void main(String args[]) {
new BusquedaBidimensional();
}

   public BusquedaBidimensional() {
    String arreglo[][] = { { "Juan", "Pedro", "Maria", "Jorge" },
                     { "Pablo", "Perla", "Eva", "Gabriela" },
                     { "Yesenia", "Giovani", "Edith", "Jesus" } };
String nombre="Juan";
if(existeElemento(arreglo, nombre))
System.out.println(nombre +" se encuentra en el arreglo");
else
System.out.println(nombre +" no se encuentra en el arreglo");

   }
   
   private boolean existeElemento(String [][] arreglo, String elemento) {
     int filas = arreglo.length;
     int columnas = arreglo[ 0 ].length;
     boolean encontrado=false;
     
     for ( int fila = 0; fila < filas; fila++ )
        for ( int columna = 0; columna < columnas; columna++ )
           if ( arreglo[ fila ][ columna ].equals(elemento) )
              encontrado=true;

     return encontrado;
  }
   
}



Si puedo mas tarde comento bien.

Mientras revisa el código.

Saludos.


abc