Imprimer un tableau en Java

Rupam Yadav 12 octobre 2023
  1. Utiliser printf()/println() pour imprimer une liste sous forme de tableau en Java
  2. Utilisation de System.out.format() pour imprimer une liste sous forme de tableau en Java
Imprimer un tableau en Java

Pour imprimer n’importe quelle information dans une structure tabulaire en Java, on peut utiliser la méthode printf() ou format() de la classe java.io.PrintStream.

Utiliser printf()/println() pour imprimer une liste sous forme de tableau en Java

La méthode printf(format, arguments) fournit un formatage de chaîne. Nous pouvons spécifier les règles de formatage à l’aide de modèles de format et les règles commencent par %.

Ici, nous avons une classe POJO Student avec des attributs de base tels que id, name, age et grade et la classe TestExample où nous créons une List d’élèves et imprimons ces informations dans un tableau format.

La chaîne de formatage se compose de littéraux et de spécificateurs de format, qui incluent les indicateurs, la largeur, la précision et le caractère de conversion dans cette séquence. Par exemple %[flags][width][.precision]conversion-charcater. Les spécificateurs indiqués entre parenthèses sont facultatifs. Le printf utilise en interne java.util.Formatter pour analyser la chaîne de format et la sortir.

Le conversion-character détermine comment la chaîne est formatée. Ici, nous avons utilisé deux des plus courants, s, d et c. Le s formate les chaînes tandis que d formate les entiers décimaux, et le résultat de c est un caractère Unicode. Par conséquent, dans ce code, nous avons utilisé une combinaison de largeur et de caractère de conversion pour formater les données de l’étudiant donné dans un tableau.

La méthode printf("%10s %20s %5s %5s", "STUDENT ID", "NAME", "AGE", "GRADE") a le spécificateur de format pour formater les arguments passés. Ainsi, %10s, par exemple, formate une chaîne avec un nombre spécifié de caractères et la justifie également à droite. La méthode println() déplace le curseur sur la ligne suivante après l’impression du résultat.

La méthode format("%10s %20s %5d %5c",student.getId(), student.getName(), student.getAge(), student.getGrade()) possède également les méthodes de spécificateur de format et de lecture de la classe d’élèves pour obtenir la valeur des attributs.

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;
  }
}

Production:

-----------------------------------------------------------------------------
STUDENT ID                 NAME   AGE GRADE
-----------------------------------------------------------------------------
      S101                 John     8     4
      S102                  Leo    10     6
      S103                 Mary     5     2
      S104                 Lisa     6     3
-----------------------------------------------------------------------------

Utilisation de System.out.format() pour imprimer une liste sous forme de tableau en Java

Le paquet java.io fournit à la classe PrintStream deux méthodes utilisées pour remplacer print et println. Ces méthodes sont format() et printf() et sont équivalentes. Dans format(String format, Object... args), le format spécifie la mise en forme à utiliser, args, qui sont la liste des arguments à imprimer à l’aide de cette mise en forme.

Ici, nous créons un tableau 2D de type de données String ; les 4 lignes et colonnes ne sont pas spécifiées à ce stade. Cela signifie simplement que nous déclarons un tableau de 4 tableaux. Ensuite, nous initialisons chaque ligne avec un objet String.

Nous exécutons une boucle for pour chaque ligne à l’intérieur de la table, un tableau multidimensionnel de tableaux. Pour chaque ligne, nous formatons la ligne en utilisant System.out.format() en spécifiant le modèle de formatage pour chaque ligne.

Ici, %15s signifie une chaîne justifiée à droite avec 15 largeurs, et %n est un séparateur de ligne spécifique à la plate-forme.

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);
    }
  }
}

Production:

  Apple         Banana         Papaya
Chicken         Mutton           Fish
Carrots          Beans        Cabbage
  Candy           Cake          Bread
Auteur: Rupam Yadav
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

Article connexe - Java Print