W3docs

Output in Java: print, println e printf

Stampa testo e valori sulla console con System.out.print, println e printf, e scopri le differenze tra questi metodi.

Il modo standard per stampare output da un programma Java è tramite System.out, il flusso di output standard disponibile per ogni programma. Espone tre metodi che utilizzerai continuamente: print, println e printf. Si differenziano solo nel modo in cui gestiscono le righe nuove e la formattazione.

System.out.println

println ("print line") scrive il suo argomento seguito da una riga nuova. Ogni chiamata passa alla riga successiva:

System.out.println("Line 1");
System.out.println("Line 2");
System.out.println("Line 3");

Output:

Line 1
Line 2
Line 3

Questo è il metodo che utilizzerai di più.

System.out.print

print è uguale a println ma senza la riga nuova finale. È utile quando vuoi più valori sulla stessa riga:

System.out.print("Loading");
System.out.print(".");
System.out.print(".");
System.out.print(".");
System.out.println(" done");

Output:

Loading... done

Stampa di valori, non solo stringhe

Sia print che println accettano qualsiasi tipo, non solo string. Il runtime converte numeri, boolean, caratteri e persino oggetti in una string per te:

System.out.println(42);
System.out.println(3.14);
System.out.println(true);
System.out.println('A');

Per oggetti arbitrari, il runtime chiama il loro metodo toString() (trattato più avanti in OOP).

Concatenazione di stringhe con +

L'operatore + unisce le string — e se si mescola un numero o un altro valore, Java lo converte automaticamente:

String name = "Ada";
int age = 36;
System.out.println("Hello, " + name + "! You are " + age + " years old.");

Output:

Hello, Ada! You are 36 years old.

System.out.printf — output formattato

printf ("print formatted") è l'equivalente Java del printf del C. Si passa una stringa di formato con segnaposto e i valori da sostituire:

java— editable, runs on the server

I segnaposto più comuni:

  • %s — string
  • %d — intero
  • %f — numero in virgola mobile
  • %.2f — float con 2 cifre decimali
  • %5d — intero in un campo largo 5 caratteri, riempito con spazi a sinistra (allineato a destra)
  • %-5d — intero in un campo largo 5 caratteri, riempito con spazi a destra (allineato a sinistra)
  • %n — riga nuova specifica della piattaforma (usare questo invece di \n in printf)
  • %% — un segno % letterale

System.err — stampa degli errori

Esiste un flusso parallelo per l'output degli errori: System.err. Supporta gli stessi metodi print, println e printf. Per convenzione, l'output normale va su System.out e i messaggi di errore su System.err:

System.out.println("Loaded 3 records.");
System.err.println("Warning: could not parse line 5.");

In un terminale entrambi i flussi appaiono insieme, ma gli strumenti che reindirizzano l'output (> file.txt) possono separarli.

Errori comuni

  • Usare print quando si voleva println. L'output finisce su una sola riga senza separatori.
  • Confondere + e , in printf. I segnaposto della stringa di formato vengono riempiti da argomenti aggiuntivi, non dalla concatenazione. Usare printf("%s scored %d", name, score), non printf("%s scored", name + score).
  • Dimenticare %n in printf. Senza di esso, l'output risulta tutto unito.

Prossimi passi

Commenti Java illustra le tre sintassi per i commenti, incluso Javadoc — il modo standard per documentare il codice Java.

Esercitazione

Pratica
Quale metodo scrive il suo argomento SENZA una riga nuova finale?
Quale metodo scrive il suo argomento SENZA una riga nuova finale?
Was this page helpful?