Java - Imprimir posición de un arreglo

 
Vista:
sin imagen de perfil

Imprimir posición de un arreglo

Publicado por anonymous (5 intervenciones) el 19/06/2018 09:57:37
Hola que tal, sinceramente no tengo mucha experiencia en progra, pero necesito mucho ayuda.

Estoy creando un programa que despliega una lista de animales de un zoológico, cuando el usuario introduce una letra de la "a" a la "j", el programa debe imprimir las palabras de la lista que comienzan con esa letra.

Por ejemplo: Cuando el usuario inserta una "j" el programa puesta como resultado: "Contamos con: jabalíes, jirafa, jaguar"

La cuestión es que, ya tengo la lista, la puedo imprimir, pero al momento de recorrerla, parece que eso estuviera bien, pero cuando quiero comparar la inicial a la palabra, algo no me esta funcionando.

Estoy usando startsWith() para buscar la inicial (encontrar esto me tomo mucho tiempo!) pero espero que funcione.

Aqui dejo mi código, y agradezco mucho cualquier ayuda, en verdad!!!

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 */
import java.util.Scanner;
 
public class Animales{
    public static void main(String []args){
 
        Scanner in = new Scanner(System.in);
        String [] [] animales = {
               {"Avestruces"},
               {"Abejas"},
               {"Armadillos"},
               {"Alces"},
               {"Alpacas"},
               {"Ballenas"},
               {"Bueyes"},
               {"Bufalos"},
               {"Bisontes"},
               {"Burros"},
               {"Camellos"},
               {"Caballos"},
               {"Canguros"},
               {"Cerditos"},
               {"Caballos"},
               {"Damanes"},
               {"Delfines"},
               {"Dingos"},
               {"Dragones"},
               {"Dinosaurios"},
               {"Elefantes"},
               {"Escarabajos"},
               {"Escorpions"},
               {"Erizos de mar"},
               {"Estrellas de mar"},
               {"Focas"},
               {"Faisanes"},
               {"Flamencos"},
               {"Frailecillos"},
               {"Gacelas"},
               {"Gekos"},
               {"Gorilas"},
               {"Galápagos"},
               {"Gorriones"},
               {"Halcones"},
               {"Hipopotamos"},
               {"Hormigas"},
               {"Hienas"},
               {"Hurones"},
               {"Ibices"},
               {"Icoteas"},
               {"Iguanas"},
               {"Insectos palo"},
               {"Intendios"},
               {"Impalas"},
               {"Jabalíes"},
               {"Jirafas"},
               {"Jaguares"},
               {"Leones"}
        };
 
//IMPRIME LOS ANIMALES DEL ARREGLO
    System.out.println("\n---Estos son los animales del zoologico");
 
        for(int filas=0;filas<animales.length;filas++){
            for(int columnas=0;columnas<animales[filas].length;columnas++){
                System.out.print(animales[filas][columnas]+",\n");
            }
        }
 
    System.out.println("\n---Introduzca un caracter a buscar---");
    String buscar = in.next();
 
        for(int i=0; i < animales.length; i++){
            String palabra = animales[i].toString();
 
            if (palabra.startsWith(buscar));
            System.out.println("Contamos con: ");
            System.out.println(String.valueOf(animales[i]));
        }
    }
}


Hasta el momento mi Salida es la siguiente:

run:

---Estos son los animales del zoologico
Avestruces,
Abejas,
Armadillos,
Alces,
Alpacas,
Ballenas,
Bueyes,
Bufalos,
Bisontes,
Burros,
Camellos,
Caballos,
Canguros,
Cerditos,
Caballos,
Damanes,
Delfines,
Dingos,
Dragones,
Dinosaurios,
Elefantes,
Escarabajos,
Escorpions,
Erizos de mar,
Estrellas de mar,
Focas,
Faisanes,
Flamencos,
Frailecillos,
Gacelas,
Gekos,
Gorilas,
Galápagos,
Gorriones,
Halcones,
Hipopotamos,
Hormigas,
Hienas,
Hurones,
Ibices,
Icoteas,
Iguanas,
Insectos palo,
Intendios,
Impalas,
Jabalíes,
Jirafas,
Jaguares,
Leones,

---Introduzca un caracter a buscar---
a
[Ljava.lang.String;@1540e19d
[Ljava.lang.String;@677327b6
[Ljava.lang.String;@14ae5a5
[Ljava.lang.String;@7f31245a
[Ljava.lang.String;@6d6f6e28
[Ljava.lang.String;@135fbaa4
[Ljava.lang.String;@45ee12a7
[Ljava.lang.String;@330bedb4
[Ljava.lang.String;@2503dbd3
[Ljava.lang.String;@4b67cf4d
[Ljava.lang.String;@7ea987ac
[Ljava.lang.String;@12a3a380
[Ljava.lang.String;@29453f44
[Ljava.lang.String;@5cad8086
[Ljava.lang.String;@6e0be858
[Ljava.lang.String;@61bbe9ba
[Ljava.lang.String;@610455d6
[Ljava.lang.String;@511d50c0
[Ljava.lang.String;@60e53b93
[Ljava.lang.String;@5e2de80c
[Ljava.lang.String;@1d44bcfa
[Ljava.lang.String;@266474c2
[Ljava.lang.String;@6f94fa3e
[Ljava.lang.String;@5e481248
[Ljava.lang.String;@66d3c617
[Ljava.lang.String;@63947c6b
[Ljava.lang.String;@2b193f2d
[Ljava.lang.String;@355da254
[Ljava.lang.String;@4dc63996
[Ljava.lang.String;@d716361
[Ljava.lang.String;@6ff3c5b5
[Ljava.lang.String;@3764951d
[Ljava.lang.String;@4b1210ee
[Ljava.lang.String;@4d7e1886
[Ljava.lang.String;@3cd1a2f1
[Ljava.lang.String;@2f0e140b
[Ljava.lang.String;@7440e464
[Ljava.lang.String;@49476842
[Ljava.lang.String;@78308db1
[Ljava.lang.String;@27c170f0
[Ljava.lang.String;@5451c3a8
[Ljava.lang.String;@2626b418
[Ljava.lang.String;@5a07e868
[Ljava.lang.String;@76ed5528
[Ljava.lang.String;@2c7b84de
[Ljava.lang.String;@3fee733d
[Ljava.lang.String;@5acf9800
[Ljava.lang.String;@4617c264
[Ljava.lang.String;@36baf30c
BUILD SUCCESSFUL (total time: 5 seconds)
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 kingk
Val: 247
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Imprimir posición de un arreglo

Publicado por kingk (108 intervenciones) el 20/06/2018 20:16:58
Hola,el problema es como recorres el array, podrias cambiarlo asi:

1
2
3
4
System.out.println("\n---Introduzca un caracter a buscar---"); String buscar = in.next()
for(int i=0; i < animales.length; i++){
String palabra = animales[i][0].toString()
if (palabra.startsWith(buscar)){ System.out.println("Contamos con: "); System.out.println(String.valueOf(animales[i])); } }

O simplemente usar un array unidimensional, en lugar de un bidimensional.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Imprimir posición de un arreglo

Publicado por anonymous (5 intervenciones) el 20/06/2018 22:48:52
Captura-de-pantalla-2018-06-20-a-las-13.44.23

Hola @kingk
Agradezco mucho tu ayuda, hice lo que me comentabas, y pasó lo siguiente:

String palabra = animales[i][0].toString();
Esta linea me aparecia como redundancia en convertir de String a String, así es que quite el "toString()"

Después cuando corro el programa, al imprimir los animales cada uno me siguen saliendo con un mensaje de JavaLang. Al debuguear, la variable palabra tiene el animal que debería imprimir, pero por alguna razón (que desconozco totalmente) me imprime el mensaje JavaLang. No se qué es lo que estoy haciendo mal. Debe ser algo con mis variables?
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
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Imprimir posición de un arreglo

Publicado por Yamil Bracho (2315 intervenciones) el 20/06/2018 22:59:03
El if que tienes es vacio..
Tienes if (palabra.startsWith(buscar)) ; {
basicamenet no estas haciendo nada en el if. Quitale el ; y listo

Tambien el String.valueOf(animales[i][0]) cambialo solo por palabra, es decir, System.out.println(palabra)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Imprimir posición de un arreglo

Publicado por anonymous (5 intervenciones) el 20/06/2018 23:09:18
Muchísimas gracias!!!
Lo que hace el cansancio con la falta de fluidez en el lenguaje de java...

Perfecto!! Solamente me espante porque no imprimir nada, al debuguear no llegaba a la linea del System.out.pring. Era porque estaba introduciendo un carácter en minúscula, pero ya quedo.
Aqui les muestro el screenshot

Y sinceramente les agradezco mucho su ayuda

Captura-de-pantalla-2018-06-20-a-las-14.09.04
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