Java - me ayudan a arreglar este codigo

 
Vista:

me ayudan a arreglar este codigo

Publicado por Ds (1 intervención) el 27/05/2021 02:19:45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class Busqueda {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
     Scanner tx= new Scanner(System.in);
     Scanner teclado = new Scanner(System.in);
        int [] lista ;
 
        System.out.println("Ingrese la cantidad de espacios en memoria");
        lista= new int[tx.nextInt()];
 
        for (int i = 0; i < lista.length; i++) {
            System.out.println("Ingrese los nombres");
 
         String nombres = teclado.nextLine();
 
        }
 
        System.out.println("Ingrese el nombre a buscar");
        String nombre =tx.nextLine();
 
          busqueda(nombre);
 
        }
        public static void busqueda(int array,int A){
 
          for (int i=0;i<array;i++){
 
                if(array == A) {
              } else {System.out.println("El nombre "+ A + " encontrado");
              }
{
 
 
                }
          }
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

me ayudan a arreglar este codigo

Publicado por Kabuto (1381 intervenciones) el 27/05/2021 11:13:27
Se supone que has de crear un array que contenga nombres, por tanto, no puede ser int[] ya que entonces solo admite números.

1
2
3
4
public static void main(String[] args) {
Scanner tx= new Scanner(System.in);
Scanner teclado = new Scanner(System.in);
int[] lista;

Si queremos guardar nombres, ha de ser String[]

1
2
3
4
public static void main(String[] args) {
Scanner tx= new Scanner(System.in);
Scanner teclado = new Scanner(System.in);
String[] lista ;

Ahora que tenemos un array correcto, ya sí puede almacenar nombres.
Porque ahora mismo en el código, no se están almacenando.
Aquí se piden nombres, pero no se guardan en la lista:
1
2
3
4
5
6
for (int i = 0; i < lista.length; i++) {
System.out.println("Ingrese los nombres");
 
String nombres = teclado.nextLine();
 
}

Claro que de todos modos no se iban a poder guardar, porque el array estaba declarado como int[].
Pero ahora que lo hemos cambiado por un String[] ya sí se puede almacenar los nombres en la lista:

1
2
3
4
5
6
for (int i = 0; i < lista.length; i++) {
System.out.println("Ingrese los nombres");
 
lista[i] = teclado.nextLine();
 
}


El método de búsqueda, esta declarado para recibir dos valores int:
1
public static void busqueda(int array,int A)

Pero lo que tendría que recibir es el array de nombres, y el nombre que se ha de buscar:

1
public static void busqueda(String[] array, String nombreBuscar)

¿Y cuál es la lógica que hay que seguir dentro de este método?
Hay que recorrer cada uno de los nombres que hay en el array, usando un bucle como el que hemos usado antes para leer los nombres.

Y por cada nombre del array, lo comparamos con el nombre que se está buscando a ver si coincide.
Recuerda que los datos de tipo String, son objetos, no son tipos primitivos como int o double.

Por tanto, la forma correcta de comparar dos String, es usando el método equals()
1
if (array[i].equals(nombreBuscar))


Añade las correcciones que he mencionado e intenta definir el cuerpo del método busqueda() usando la lógica que he dicho.
Puede que no te salga bien a la primera, eso da igual, lo importante es que lo intentes y así veas las dificultades que se te pueden presentar.
Comparte lo que hayas conseguido y si es necesario, te ayudamos a completar y corregir.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar