JAVA pad string | Riempire una stringa con spazi

Il problema

Il codice JAVA proposto ha l’obbiettivo di risolvere il problema del pad string, ovvero della formattazione di una stringa a lunghezza fissa riempiendo i caratteri non utilizzati con spazi, zero o altri caratteri.

Questo tipo di problema si presenta nei report o più in generale nella presentazione dei dati.

La tecnica JAVA pad string può essere utilizzata per riempire gli spazi precedenti ad un importo con il carattere cancelletto (#) o il carattere trattino ()

Formattazione di un importo:

1
String.format("%1$10s", 120.99).replace(" ", "#")
1
2
    OUTPUT:
    ####120.99

oppure per formattare delle stringe a larghezza fissa per ottenere una tabella.

Formattare stringhe in una tabella:

1
2
3
    String.format("| %1$-10s | %2$-10s | %3$-3s |", "Name", "BornDate", "Age")
    String.format("| %1$-10s | %2$10s | %3$3d |",contact.getName(),contact.getBornDate(),contact.getAge())
    String.format("%1$10s", 120.99).replace(" ", "#")
1
2
3
4
5
    OUTPUT:
    | Name       | BornDate   | Age |
    | Pietro     | 1999-03-03 |  23 |
    | Luca       | 1986-02-10 |  36 |
    | Sonia      | 1995-01-04 |  27 |

ed in generale per creare del testo formattato.

La funzione padString

Nel codice dell’articolo possiamo vedere la funzione padString che ricevuti i parametri

  • str: variabile di tipo String che deve essere formattata
  • len: lunghezza che si vuole impostare alla stringa in output
  • alignLeft: allineamento a sinistra

restituisce una stringa formattata sfruttando il metodo format di String.

Funzionamento String.format

Il metodo format prevede due parametri principali:

  • Le regole di formattazione in formato String
  • un varargs di argomenti da formattare

Le regole di formattazione

Le regole di formattazione sono formate da:

  • una parte fissa di testo
  • gli specifiers

La parte fissa del testo indica quale argomento deve essere preso in considerazione, ad esempio %1$ indica che la formattazione va applicata al primo argomento. Gli specifiers indicando le regole vere e proprie per la formattazione.

1
String.format("%1$10s", "ciao")

In questo caso si sta dicendo che la formattazione 10s deve far riferimento al primo argomento %1$ passato, ovvero “ciao”. L’output di tale formattazione sarà una stringa di 10 caratteri che contiene il primo argomento allineato a destra.

Riferimenti

Di seguito i riferimenti alla documentazione ufficiale dove potete vedere anche tutte le altre formattazioni che potete applicare.

corso full stack developer

News Letter

Per ricevere i nostri Snippet Code iscriviti alla news letter!