Drucken einer Tabelle in Java
-
Verwenden von
printf()
/println()
zum Drucken einer Liste als Tabelle in Java -
Verwenden von
System.out.format()
zum Drucken einer Liste als Tabelle in Java
Um beliebige Informationen in einer tabellarischen Struktur in Java auszugeben, können wir die Methode printf()
oder format()
der Klasse java.io.PrintStream
verwenden.
Verwenden von printf()
/println()
zum Drucken einer Liste als Tabelle in Java
Die Methode printf(format, arguments)
ermöglicht die Formatierung von Strings. Wir können die Regeln für die Formatierung mit Formatmustern festlegen und die Regeln beginnen mit %
.
Hier haben wir eine POJO-Klasse Student
mit grundlegenden Attributen wie id
, name
, age
und gradde
und die Klasse TestExample
, in der wir eine Liste
von Schülern erstellen und diese Informationen tabellarisch ausdrucken Format.
Die FormatierungsZeichenkette besteht aus Literalen und Formatbezeichnern, die Flags, Breite, Genauigkeit und Konvertierungszeichen in dieser Sequenz enthalten. Zum Beispiel %[flags][width][.precision]conversion-charcater
. Spezifizierer in der Klammer sind optional. Das printf
verwendet intern java.util.Formatter
, um den Formatstring zu parsen und auszugeben.
Das conversion-character
bestimmt, wie der String formatiert wird. Hier haben wir zwei der gebräuchlichen verwendet, s
, d
und c
. Das s
formatiert Strings, während d
dezimale Ganzzahlen formatiert, und das Ergebnis von c
ist ein Unicode-Zeichen. Daher haben wir in diesem Code eine Kombination aus Breite und Konvertierungszeichen verwendet, um die Daten des angegebenen Schülers in eine Tabelle zu formatieren.
Die Methode printf("%10s %20s %5s %5s", "STUDENT ID", "NAME", "AGE", "GRADE")
hat den Formatbezeichner, um die übergebenen Argumente zu formatieren. So formatiert beispielsweise %10s
einen String mit einer angegebenen Anzahl von Zeichen und begründe ihn auch rechts. Die Methode println()
bewegt den Cursor nach dem Ausdrucken des Ergebnisses in die nächste Zeile.
Die Methode format("%10s %20s %5d %5c",student.getId(), student.getName(), student.getAge(), student.getGrade())
hat auch die Formatbezeichner- und Getter-Methoden von die Schülerklasse, um den Wert der Attribute abzurufen.
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;
}
}
Ausgabe:
-----------------------------------------------------------------------------
STUDENT ID NAME AGE GRADE
-----------------------------------------------------------------------------
S101 John 8 4
S102 Leo 10 6
S103 Mary 5 2
S104 Lisa 6 3
-----------------------------------------------------------------------------
Verwenden von System.out.format()
zum Drucken einer Liste als Tabelle in Java
Das Paket java.io
stellt der Klasse PrintStream
zwei Methoden zur Verfügung, um print
und println
zu ersetzen. Diese Methoden sind format()
und printf()
und sind gleichwertig. In format(String format, Object... args)
gibt das Format die zu verwendende Formatierung an, args
, also die Liste der Argumente, die mit dieser Formatierung gedruckt werden sollen.
Hier erstellen wir ein 2D-Array vom Datentyp String
; die 4 Zeilen und Spalten werden an dieser Stelle nicht angegeben. Es bedeutet einfach, dass wir ein Array von 4 Arrays deklarieren. Dann initialisieren wir jede Zeile mit einem String-Objekt.
Wir führen für jede Zeile innerhalb der Tabelle
, einem mehrdimensionalen Array von Arrays, eine for-Schleife aus. Für jede Zeile formatieren wir die Zeile mit System.out.format()
und geben das Formatierungsmuster für jede Zeile an.
Hier bedeutet %15s
rechtsbündige Zeichenkette mit 15 Breiten und %n
ist ein plattformspezifischer Zeilentrenner.
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);
}
}
}
Ausgabe:
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