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 3Questo è 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... doneStampa 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:
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\ninprintf)%%— 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
printquando si volevaprintln. L'output finisce su una sola riga senza separatori. - Confondere
+e,inprintf. I segnaposto della stringa di formato vengono riempiti da argomenti aggiuntivi, non dalla concatenazione. Usareprintf("%s scored %d", name, score), nonprintf("%s scored", name + score). - Dimenticare
%ninprintf. 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.