Ir al contenido

Convertir matriz en cadena con Java

Cuando estemos manejando matrices en Java podemos volcar el contenido de la matriz de una forma sencilla por pantalla. Pero si simplemente queremos ver el contenido de la matriz podemos convertir la matriz en una cadena con Java. Lo primero será definir nuestra matriz:

int[][] matriz = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};

Ahora para poder convertir matriz en cadena con Java podríamos pensar que nos valdrá simplemente con invocar al método .toString()

System.out.println(matriz.toString());

Y ya lo tenemos todo… Pero, espera un momento. Por pantalla me muestra lo siguiente:

[[I@15db9742

Esto se nos parece poco a una matriz. Así que el método .toString() no nos sirve para convertir matriz en cadena con Java. Lo que nos sucede aquí es algo parecido a lo que sucedía cuando comparábamos matrices mediante el método .equals(). Y aquí tenemos una solución parecida. Y es que la clase Arrays nos ofrece un método recursivo que se llama .deepToString. El método .deepToString recorrerá de forma recursiva la matriz y la convertirá en una cadena. De esta forma tendremos que codificarlo de la siguiente manera:

System.out.println(Arrays.deepToString(matriz));

Y así obtendremos por pantalla:

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]

Y ya habremos conseguido convertir matriz en cadena con Java de una forma sencilla.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Convertir matriz en cadena con Java

Análisis de como podemos convertir matriz en cadena con Java utilizando la clase Arrays.

Descargar código
Pon a prueba tu conocimiento
Arrays en Java

¿Cuál de las siguientes opciones inicializa correctamente un array de String con 3 elementos?

  • A String[] nombres = {"Ana", "Luis", "Carlos"};
  • B String nombres[] = new String[3] {"Ana", "Luis", "Carlos"};
  • C String nombres = ["Ana", "Luis", "Carlos"];
  • D String[] nombres = new String(3);