Java - Sacar datos de un array bidimensional

 
Vista:
Imágen de perfil de jose
Val: 64
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Sacar datos de un array bidimensional

Publicado por jose (73 intervenciones) el 25/09/2018 15:52:46
Hola a todos,

Espero me ayuden, soy estudiante de un ciclo a distancia.

Estoy intentando encontrar la forma de conseguir que los valores de un array bidimensional sean añadidos a los de una variable.
Me explico:
Si el array dice array[1111][11], que el método busque el 1111

El método 1111 sea el nuevo valor de la variable matriConsulta
y el valor 11 lo sea de dniConsulta.

Donde no llego es a saber como conseguir que el valor 11 se guarde en dniConsulta.

Por supuesto el código no creo que sea lo mejor.

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
private void buscarDNIByMatricula() {
    boolean encontrado = false;
    matriConsulta = "";
    dniConsulta = "";
 
 
    // Comprobar si la matrícula existe
    // Asignar a matriConsulta la matrícula encontrada
    // assignar a dniConsulta el dni encontrado
 
    for (int i = 0; i < indexMatricula && (!encontrado); i++) {
        for (int j = 0;j < indexMatricula; j++ ) {
            if (ListaMATDNIs[i][0].equalsIgnoreCase(matricula)) {
 
                System.out.print(i);
                encontrado = true;
                matriConsulta = matricula;
                dniConsulta = ListaMATDNIs[i][i];
                buscarPersonaByDNI();
                System.out.println("El dni y nombre ya existen");
                return;
            }
        }
    }
 
}
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

Sacar datos de un array bidimensional

Publicado por Kabuto (1381 intervenciones) el 25/09/2018 22:38:20
Hola.

Según creo entender aquí lo que tenemos es una matriz o array bidimensional, donde se guardan Matriculas y sus DNI correspondientes.
Entonces, teniendo la Matricula, hemos de encontrar su correspondiente DNI en la matriz.

Bien, esto puede resolverse fácilmente y no es necesario que usemos bucles anidados. Basta con un único bucle.

Pongamos esta matriz que he declarado como ejemplo:
1
2
3
4
5
6
7
//Matriz de ejemplo con Matriculas y DNI
	static String[][] listaMATDNIs = {
			{"001", "1234567w"},
			{"002", "4590123h"},
			{"003", "9076611t"},
			{"004", "7230991x"}
	};

Esta matriz tiene de dimensiones[4][2], porque guarda la info de solo 4 matriculas.
Nuestro programa ha de funcionar para cualquier número de matriculas, así que no sabemos de antemano cual va a ser el valor de la primera dimensión. Pero la segunda dimensión siempre será [2], porque siempre tendremos un conjunto de una matricula y un dni.

Así que en la posición [x][0] siempre tendremos una matricula y en la posicion [x][1] siempre tendremos un DNI.
Con esto en mente, ya podemos dar las instrucciones precisas de donde buscar matriculas para comparar y de donde extraer el DNI si encontramos la matricula a buscar.

Te dejo este programa de ejemplo, tu luego ya adáptalo según tus necesidades.
Si tienes dudas, pregunta lo que sea.

Si no era esto lo que necesitabas, acláramelo e intento ayudarte con lo que sea.
Un saludo.

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
import java.util.Scanner;
 
public final class Test {
 
	//Matriz de ejemplo con Matriculas y DNI
	static String[][] listaMATDNIs = {
			{"001", "1234567w"},
			{"002", "4590123h"},
			{"003", "9076611t"},
			{"004", "7230991x"}
	};
 
	/**
	 * Busca el DNI correspondiente a la Matricula que recibe
	 * como argumento. Si no la encuentra, devolverá valor null
	 * @param matricula Matricula que queremos consultar.
	 * @return String con el DNI correspondiente a la matricula consultada.
	 */
	static String buscarDNIByMatricula(String matricula) {
 
		String dni = null;
 
		for (int i = 0; i < listaMATDNIs.length; i++) {
 
			/*
			 * En posicion [i][0] tenemos las matriculas
			 * En posicion [i][1] tenemos los DNI
			 */
			if (listaMATDNIs[i][0].equalsIgnoreCase(matricula)) {
				dni = listaMATDNIs[i][1];
				break;//DNI encontrado, podemos interrumpir ya el bucle for
			}
 
		}
 
		return dni;
	}
 
	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
 
		System.out.print("Introduzca matricula a buscar: ");
		String matricula = teclado.nextLine();
 
		String dni = buscarDNIByMatricula(matricula);
 
		if (dni == null)
			System.out.println("No se encontró la matricula indicada");
		else
			System.out.println("Se encontró el DNI: " + dni);
 
		teclado.close();
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de jose
Val: 64
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Sacar datos de un array bidimensional

Publicado por jose (73 intervenciones) el 26/09/2018 09:47:16
Hola Kabuto,

Est la mejor respuesta que podía esperar.

Voy a guardar tu contacto por que creo que eres lo que necesita cualquier persona que esté aprendiendo, alguien que sepa explicar

Muchas gracias por tu tiempo.
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