Siento que esta es una pregunta con una respuesta fácil, pero parece que no puedo resolverlo por alguna razón.
for (int i = 0; i < width; i++){ for (int j = 0; j < height; j++) { switch (c) { case 'i': System.out.printf("[%d]", val); break; case 'b': System.out.printf("[x]"); break; case 'w': System.out.printf("[ ]"); break; default: System.out.printf("[%c]", type); break; } System.out.printf("%-2s", ""); } System.out.println(); }Este es el código. Tengo una matriz y quiero imprimirla como una tabla. Sin embargo, este código no lo hace de forma clara.
Cambiando System.out.printf("%-2s", ""); para System.out.print("\t"); funciona pero el espacio entre las filas es demasiado ancho.
¿Alguna sugerencia?
¡Gracias!
Una solución sencilla es hacer un formato de dos pasos:
Así que en tu bloque de interruptores:
formatted = String.format("[%d]", val);Y por debajo:
System.out.printf("%-6s", formatted);En su caso, que sigue siendo bastante simple, también puede incorporar el ancho de columna en su bloque de interruptores:
System.out.printf("[%4d]", val); // 4 = 6 (column width) minus 2 for the brackets // ... System.out.printf("[x] "); // add 3 spaces to the end // etc.