Java Language Alignement des chaînes dans la console


Exemple

La méthode PrintWriter.format (appelée via System.out.format ) peut être utilisée pour imprimer des chaînes alignées dans la console. La méthode reçoit une String avec les informations de format et une série d'objets à formater:

String rowsStrings[] = new String[] {"1", 
                                     "1234", 
                                     "1234567", 
                                     "123456789"};

String column1Format = "%-3s";    // min 3 characters, left aligned
String column2Format = "%-5.8s";  // min 5 and max 8 characters, left aligned
String column3Format = "%6.6s";   // fixed size 6 characters, right aligned
String formatInfo = column1Format + " " + column2Format + " " + column3Format;

for(int i = 0; i < rowsStrings.length; i++) {
    System.out.format(formatInfo, rowsStrings[i], rowsStrings[i], rowsStrings[i]);
    System.out.println();
}

Sortie:

1   1          1
1234 1234    1234
1234567 1234567 123456
123456789 12345678 123456

L'utilisation de chaînes de format avec une taille fixe permet d'imprimer les chaînes dans un aspect de type tableau avec des colonnes de taille fixe:

String rowsStrings[] = new String[] {"1", 
                                     "1234", 
                                     "1234567", 
                                     "123456789"};

String column1Format = "%-3.3s";  // fixed size 3 characters, left aligned
String column2Format = "%-8.8s";  // fixed size 8 characters, left aligned
String column3Format = "%6.6s";   // fixed size 6 characters, right aligned
String formatInfo = column1Format + " " + column2Format + " " + column3Format;

for(int i = 0; i < rowsStrings.length; i++) {
    System.out.format(formatInfo, rowsStrings[i], rowsStrings[i], rowsStrings[i]);
    System.out.println();
}

Sortie:

1   1             1
123 1234       1234
123 1234567  123456
123 12345678 123456

Exemples de chaînes de format

  • %s : juste une chaîne sans formatage
  • %5s : formate la chaîne avec un minimum de 5 caractères; si la chaîne est plus courte, elle sera remplacée par 5 caractères et alignée à droite
  • %-5s : %-5s la chaîne avec un minimum de 5 caractères; si la chaîne est plus courte, elle sera remplie à 5 caractères et alignée à gauche
  • %5.10s : %5.10s la chaîne avec un minimum de 5 caractères et un maximum de 10 caractères; si la chaîne est inférieure à 5, elle sera remplacée par 5 caractères et alignée à droite ; si la chaîne est plus longue que 10, elle sera tronquée à 10 caractères et alignée à droite
  • %-5.5s : %-5.5s la chaîne avec une taille fixe de 5 caractères (minimum et maximum sont égaux); si la chaîne est inférieure à 5, elle sera remplacée par 5 caractères et alignée à gauche ; si la chaîne est plus longue que 5, elle sera tronquée à 5 caractères et alignée à gauche