Casi todos los ejemplos que hacemos con matrices son con números como contenido. Alguno de vosotros nos habéis pedido si podemos explicar cómo sería con String y por lo tanto vamos a ver lo sencillo que es montar y recorrer una matriz de cadenas con Java.
La verdad que la forma en la que se trata una matriz cuando contiene cadenas a cuando contiene números es muy similar. Lo primero que haremos será definir una matriz con el tipo String
.
String[][] matriz;
Para instanciar la matriz podemos hacer dos cosas, por un lado podemos darle un tamaño e ir insertando los elementos. En este caso primero definimos el tamaño de la matriz en filas y columnas.
String[][] matriz = new String[3][3];
Y luego iremos insertando cada una de las cadenas dentro de las posiciones de la matriz.
matriz[0][0] = "Marta"; matriz[0][1] = "Luis"; matriz[0][2] = "Nacho"; matriz[1][0] = "Juancho"; matriz[1][1] = "Anabel"; matriz[1][2] = "Julio"; matriz[2][0] = "María"; matriz[2][1] = "David"; matriz[2][2] = "Gema";
O bien nos podemos evitar todo este código si lo que hacemos es instanciar directamente la matriz en su creación mediante una estructura de llaves. En este caso la instanciación de la matriz de cadenas en Java quedaría de la siguiente manera:
String[][] matriz = {{"Marta","Luis","Nacho"},{"Juancho","Anabel","Julio"},{"Maria","David","Gema"}};
Para recorrer la matriz y mostrar las cadenas por pantalla será igual que cualquier otra matriz y lo que haremos será utilizar dos bucles for que vayan hasta la longitud de la fila mediante la propiedad .length
y hasta la longitud de cada una de las filas mediante, nuevamente, la propiedad .length
.
Este código nos quedaría de la siguiente forma:
for (int x=0; x < matriz.length; x++) { for (int y=0; y < matriz[x].length; y++) { System.out.println (matriz[x][y]); } }
Alguno podría pensar que lo que se muestra por pantalla es una lista y se parece poco a una matriz. Así que vamos a tomarnos algunas licencias de diseño de la salida de la matriz por la consola. De esta forma al principio y final, así como entre elementos pondremos un símbolo «|» y generaremos saltos de línea entre filas.
Así que el código adecuado nos quedaría de la siguiente manera:
for (int x=0; x < matriz.length; x++) { System.out.print("|"); for (int y=0; y < matriz[x].length; y++) { System.out.print (matriz[x][y]); if (y!=matriz[x].length-1) System.out.print("\t"); } System.out.println("|"); }
¿Qué te parece? ¿Lo mejorarías de alguna manera?
Espero que os sea de utilidad este sencillo ejemplo de cómo crear una matriz de cadenas en Java.