Affichage Java : print, println et printf
Affichez du texte et des valeurs dans la console avec System.out.print, println et printf, et comprenez leurs différences.
La façon standard d'afficher des données depuis un programme Java passe par System.out, le flux de sortie standard disponible pour chaque programme. Il expose trois méthodes que vous utiliserez constamment : print, println et printf. Elles ne diffèrent que par leur gestion des sauts de ligne et du formatage.
System.out.println
println ("print line") écrit son argument suivi d'un saut de ligne. Chaque appel passe à la ligne suivante :
System.out.println("Line 1");
System.out.println("Line 2");
System.out.println("Line 3");Sortie :
Line 1
Line 2
Line 3C'est la méthode que vous utiliserez le plus souvent.
System.out.print
print est identique à println mais sans le saut de ligne final. Utile quand vous souhaitez afficher plusieurs valeurs sur une même ligne :
System.out.print("Loading");
System.out.print(".");
System.out.print(".");
System.out.print(".");
System.out.println(" done");Sortie :
Loading... doneAfficher des valeurs, pas seulement des chaînes
print et println acceptent n'importe quel type, pas seulement des chaînes. Le runtime convertit automatiquement les nombres, les booléens, les caractères et même les objets en chaîne pour vous :
System.out.println(42);
System.out.println(3.14);
System.out.println(true);
System.out.println('A');Pour les objets arbitraires, le runtime appelle leur méthode toString() (abordée plus tard dans la POO).
Concaténation de chaînes avec +
L'opérateur + assemble des chaînes — et si vous combinez un nombre ou une autre valeur, Java le convertit automatiquement :
String name = "Ada";
int age = 36;
System.out.println("Hello, " + name + "! You are " + age + " years old.");Sortie :
Hello, Ada! You are 36 years old.System.out.printf — sortie formatée
printf ("print formatted") est l'équivalent Java du printf du langage C. Vous passez une chaîne de format avec des espaces réservés et les valeurs à substituer :
Les espaces réservés courants :
%s— string%d— integer%f— floating-point number%.2f— float with 2 decimal places%5d— integer in a field 5 characters wide, padded with spaces on the left (right-aligned)%-5d— integer in a field 5 characters wide, padded with spaces on the right (left-aligned)%n— platform-specific newline (use this instead of\ninprintf)%%— a literal%sign
System.err — afficher les erreurs
Il existe un flux parallèle pour la sortie d'erreurs : System.err. Il prend en charge les mêmes méthodes print, println et printf. Par convention, la sortie normale passe par System.out et les messages d'erreur par System.err :
System.out.println("Loaded 3 records.");
System.err.println("Warning: could not parse line 5.");Dans un terminal, les deux flux apparaissent ensemble, mais les outils qui redirigent la sortie (> file.txt) peuvent les séparer.
Erreurs courantes
- Utiliser
printà la place deprintln. La sortie se retrouve sur une seule ligne sans séparateur. - Mélanger
+et,dansprintf. Les espaces réservés de la chaîne de format sont remplis par des arguments supplémentaires, pas par concaténation. Utilisezprintf("%s scored %d", name, score), pasprintf("%s scored", name + score). - Oublier
%ndansprintf. Sans lui, votre sortie est collée.
Et ensuite
Les commentaires Java présente les trois syntaxes de commentaires, dont Javadoc — la façon standard de documenter le code Java.