Java - Como mostrar MATRIZ con BORDES en CONSOLA en JAVA

 
Vista:
sin imagen de perfil

Como mostrar MATRIZ con BORDES en CONSOLA en JAVA

Publicado por anonymous (11 intervenciones) el 12/05/2022 20:32:33
Hola, necesito mostrar una matriz con bordes, así:

matrizBORDES

Pero no sé como hacerlo, si alguien me ayudaría lo agradezco.
Saludos
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

Como mostrar MATRIZ con BORDES en CONSOLA en JAVA

Publicado por Kabuto (1381 intervenciones) el 13/05/2022 11:57:56
Se puede hacer usando String.format() para imprimir en pantalla cada valor de manera que ocupen todos el mismo ancho, por ejemplo, 10 caracteres.
Antes de imprimir cada fila de valores, imprimimos el borde superior, es decir, este borde: +------+-----+-----+
Si queremos hacerlo de manera que se adapte a matrices de cualquier tamaño, habrá que ingeniárselas un poquito.

Podemos hacer un método que imprima ese borde según el número de "columnas" que tiene la matriz.
Así, lo que hacemos es que por cada "fila", imprimimos un borde superior (según las "columnas") y a continuación los valores de esa fila, formateados con String.format() para que ocupen SIEMPRE 10 caracteres en pantalla.

Básicamente eso es todo, luego solo hay que tener cuidado de elegir donde usar println() o print() según si queremos salto de línea o no.
Y también de cerrar correctamente los bordes de la tabla:
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
public class MatrizBordes {
 
	public static void main(String[] args) {
		int[][] numeros = {{1,1232,3,4,5,6,7,8},
				  {8,7,6,-45,4,3,2,1},
				  {0,2,0,4,150,5,0,6},
				  {3,3,4,114,5,1515,6,6},
				  {-45661,2,621,4,1,5,1,6}};
 
		mostrarConBordes(numeros);
 
	}
 
	private static void mostrarConBordes(int[][] matriz) {
 
		for (int fila = 0; fila < matriz.length; fila++) {
			bordesCeldas(matriz[0].length); //Borde superior para las celdas
			for (int col = 0; col < matriz[0].length; col++) {
				System.out.print(String.format("|%10d", matriz[fila][col]));//Cada valor ocupa 10 espacios
			}
			System.out.println("|");//Cerramos borde lateral para esta fila de celdas
		}
		bordesCeldas(matriz[0].length); //Cerramos el borde inferior de la tabla ya completada
	}
 
	private static void bordesCeldas(int numCeldas) {
		for (int c = 0; c < numCeldas; c++)
			System.out.print("+----------");
		System.out.println("+");
	}
 
}
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