Formattazione

di il
3 risposte

Formattazione

Ho letto la funzione printf di java per formattare il testo. Scrivendo questa riga di codice:
System.out.printf("%-20s %4s %10.2f € %n",nome,descrizione,prezzo); 
mi aspetto che java riservi 20 caratteri per stampare il nome con allineamento a destra, 4 caratteri per stampare la descrizione con allineamento a sinistra e 10 caratteri per stampare il prezzo con due decimali dopo la virgola e giustificati a sinistra. Quindi mi aspetterei che € sia allineato. E invece no.
Come faccio a capire che numero dare a quel %?

3 Risposte

  • Re: Formattazione

    Risolto...credo che il problema era nel %4 poco spazio per quella stringa
  • Re: Formattazione

    trixy ha scritto:


    mi aspetto che java riservi 20 caratteri per stampare il nome con allineamento a destra
    Sì, ma allineamento a sinistra (c'è il "-" infatti in %-20s)

    trixy ha scritto:


    4 caratteri per stampare la descrizione con allineamento a sinistra
    No a destra. E comunque 4 per una descrizione pare un po' poco ....

    trixy ha scritto:


    e 10 caratteri per stampare il prezzo con due decimali dopo la virgola e giustificati a sinistra.
    Se intendi con (eventuali) spazi a sinistra, sì.

    trixy ha scritto:


    Come faccio a capire che numero dare a quel %?
    Il width che si può dare ad uno specificatore di formato è sempre la dimensione MINIMA. La formattazione non "sa" e non può troncare nulla. Finché sei nel width ok ma se il contenuto è più lungo, occuperà più caratteri. E questo devi valutarlo tu.
  • Re: Formattazione

    trixy ha scritto:
    mi aspetto che java riservi 20 caratteri per stampare il nome con allineamento a destra


    Sì, ma allineamento a sinistra (c'è il "-" infatti in %-20s)

    trixy ha scritto:
    4 caratteri per stampare la descrizione con allineamento a sinistra


    No a destra. E comunque 4 per una descrizione pare un po' poco ....

    trixy ha scritto:
    e 10 caratteri per stampare il prezzo con due decimali dopo la virgola e giustificati a sinistra.
    Si, ho sbagliato a scrivere ma sapevo...e immaginavo anche che dovevo valutare in maniera forfettaria quanti carattere assegnare.
Devi accedere o registrarti per scrivere nel forum
3 risposte