Drucken einer Tabelle in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden von printf()/println() zum Drucken einer Liste als Tabelle in Java
  2. Verwenden von System.out.format() zum Drucken einer Liste als Tabelle in Java
Drucken einer 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 Yadav avatar Rupam Yadav avatar

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

Verwandter Artikel - Java Print