Imprimir una tabla en Java
-
Uso de
printf()
/println()
para imprimir una lista como una tabla en Java -
Uso de
System.out.format()
para imprimir una lista como una tabla en Java
Para imprimir cualquier información en una estructura tabular en Java, podemos utilizar el método printf()
o format()
de la clase java.io.PrintStream
.
Uso de printf()
/ println()
para imprimir una lista como una tabla en Java
El método printf(format, arguments)
proporciona formato de cadena. Podemos especificar las reglas para formatear usando patrones de formato y las reglas comienzan con %
.
Aquí tenemos una clase POJO Student
con atributos básicos como id
, name
, age
y grade
y la clase TestExample
donde creamos una Lista
de estudiantes e imprimimos esa información en un tabular formato.
La cadena de formato consta de literales y especificadores de formato, que incluyen indicadores, ancho, precisión y carácter de conversión en esta secuencia. Por ejemplo, %[flags][width][.precision]conversion-charcater
. Los especificadores que se dan entre paréntesis son opcionales. El printf
utiliza internamente java.util.Formatter
para analizar la cadena de formato y generarla.
El conversion-character
determina cómo se formatea la cadena. Aquí hemos utilizado dos de los más comunes, s
, d
y c
. La s
formatea cadenas mientras que la d
formatea enteros decimales, y el resultado de c
es un carácter Unicode. Por lo tanto, en este código, hemos usado una combinación de ancho y carácter de conversión para formatear los datos del estudiante dado en una tabla.
El método printf("%10s %20s %5s %5s", "STUDENT ID", "NAME", "AGE", "GRADE")
tiene el especificador de formato para formatear los argumentos pasados. Así, %10s
, por ejemplo, formatea una cadena con un número específico de caracteres y también la justifica a la derecha. El método println()
mueve el cursor a la siguiente línea después de imprimir el resultado.
El método format("%10s %20s %5d %5c",student.getId(), student.getName(), student.getAge(), student.getGrade())
también tiene el especificador de formato y los métodos getter de la clase de estudiantes para obtener el valor de los atributos.
import java.util.ArrayList;
import java.util.List;
public class TableExample {
public static void main(String args[]) {
List<Student> students = new ArrayList<>();
students.add(new Student("S101", "John", 8, '4'));
students.add(new Student("S102", "Leo", 10, '6'));
students.add(new Student("S103", "Mary", 5, '2'));
students.add(new Student("S104", "Lisa", 6, '3'));
System.out.println(
"-----------------------------------------------------------------------------");
System.out.printf("%10s %20s %5s %5s", "STUDENT ID", "NAME", "AGE", "GRADE");
System.out.println();
System.out.println(
"-----------------------------------------------------------------------------");
for (Student student : students) {
System.out.format("%10s %20s %5d %5c", student.getId(), student.getName(), student.getAge(),
student.getGrade());
System.out.println();
}
System.out.println(
"-----------------------------------------------------------------------------");
}
}
class Student {
private String id;
private String name;
private int age;
private Character grade;
Student(String id, String name, int age, Character grade) {
this.id = id;
this.name = name;
this.age = age;
this.grade = grade;
}
public String getId() {
return id;
}
public Character getGrade() {
return grade;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Producción :
-----------------------------------------------------------------------------
STUDENT ID NAME AGE GRADE
-----------------------------------------------------------------------------
S101 John 8 4
S102 Leo 10 6
S103 Mary 5 2
S104 Lisa 6 3
-----------------------------------------------------------------------------
Uso de System.out.format()
para imprimir una lista como una tabla en Java
El paquete java.io
proporciona a la clase PrintStream
dos métodos utilizados para reemplazar print
e println
. Estos métodos son format()
y printf()
y son equivalentes. En format(String format, Object... args)
, el formato especifica el formato a utilizar, args
, que son la lista de argumentos a imprimir utilizando este formato.
Aquí, creamos un array 2D del tipo de datos String
; las 4 filas y columnas no se especifican en este momento. Simplemente significa que estamos declarando un array de 4 matrices. Luego, inicializamos cada fila con un objeto String.
Ejecutamos un bucle for para cada fila dentro de la tabla
, un array multidimensional de matrices. Para cada fila, formateamos la fila usando System.out.format()
especificando el patrón de formato para cada fila.
Aquí %15s
significa cadena justificada a la derecha con 15 anchos, y %n
es un separador de línea específico de la plataforma.
public class Test1 {
public static void main(String args[]) {
String[][] table = new String[4][];
table[0] = new String[] {"Apple", "Banana", "Papaya"};
table[1] = new String[] {"Chicken", "Mutton", "Fish"};
table[2] = new String[] {"Carrots", "Beans", "Cabbage"};
table[3] = new String[] {"Candy", "Cake", "Bread"};
for (String[] row : table) {
System.out.format("%15s %15s %15s %n", row);
}
}
}
Producción :
Apple Banana Papaya
Chicken Mutton Fish
Carrots Beans Cabbage
Candy Cake Bread
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn