Java Language Allineare le stringhe in console

Esempio

Il metodo PrintWriter.format (chiamato tramite System.out.format ) può essere utilizzato per stampare stringhe allineate nella console. Il metodo riceve una String con le informazioni sul formato e una serie di oggetti da formattare:

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

Produzione:

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

L'utilizzo di stringhe di formato con dimensioni fisse consente di stampare le stringhe in un aspetto simile a una tabella con colonne a dimensione fissa:

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

Produzione:

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

Formattare gli esempi di stringhe

  • %s : solo una stringa senza formattazione
  • %5s : formatta la stringa con un minimo di 5 caratteri; se la stringa è più corta sarà riempita a 5 caratteri e allineata a destra
  • %-5s : formatta la stringa con un minimo di 5 caratteri; se la stringa è più corta sarà riempita a 5 caratteri e allineata a sinistra
  • %5.10s : formatta la stringa con un minimo di 5 caratteri e un massimo di 10 caratteri; se la stringa è più corta di 5 sarà riempita a 5 caratteri e allineata a destra ; se la stringa è più lunga di 10, verrà troncata a 10 caratteri e allineata a destra
  • %-5.5s : formatta la stringa con una dimensione fissa di 5 caratteri (il minimo e il massimo sono uguali); se la stringa è più corta di 5 sarà riempita a 5 caratteri e allineata a sinistra ; se la stringa è più lunga di 5 verrà troncata a 5 caratteri e allineata a sinistra