Mise en forme avec printf

JavaBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous utiliserez la méthode printf() en Java. La méthode printf() est utilisée pour formater et afficher une chaîne de caractères dans la console. La syntaxe générale de la méthode est :

Configuration du répertoire du projet

Ouvrez le terminal et créez un répertoire de projet en utilisant la commande :

mkdir project

Créez un nouveau fichier à l'intérieur du répertoire du projet en utilisant la commande :

touch project_formatting_printf.java

Mise en forme d'entiers

Pour formater des entiers à l'aide de printf(), nous utilisons le spécificateur de format %d. Voici un exemple :

public static void main(String[] args) {
  int num = 10;
  System.out.printf("The number is: %d%n", num);
}

Dans le code ci-dessus, %d est le spécificateur de format pour les entiers et %n est le caractère de nouvelle ligne.

Compilez et exécutez le code en utilisant les commandes suivantes :

javac project_formatting_printf.java
java project_formatting_printf

Vous verrez la sortie suivante :

The number is: 10

Mise en forme de nombres décimaux

Pour formater des nombres décimaux, utilisez le spécificateur de format %f. Par exemple :

public static void main(String[] args) {
  double num = 3.14159265359;
  System.out.printf("The number is: %.2f%n", num);
}

Dans le code ci-dessus, %.2f est le spécificateur de format pour les nombres décimaux avec 2 décimales.

Compilez et exécutez le code en utilisant les commandes suivantes :

javac project_formatting_printf.java
java project_formatting_printf

Vous verrez la sortie suivante :

The number is: 3.14

Mise en forme de dates

Pour formater des dates, nous utilisons t comme caractère de conversion et nous donnons un spécificateur de format. Par exemple :

public static void main(String[] args) {
  Date date = new Date();
  System.out.printf("Today is %tA, %<tB %<te, %<tY.%n", date);
}

Dans le code ci-dessus, %tA est le spécificateur de format pour le nom complet du jour et %<tB %<te, %<tY est le spécificateur de format pour le mois, le jour et l'année. %n est le caractère de nouvelle ligne.

Compilez et exécutez le code en utilisant les commandes suivantes :

javac project_formatting_printf.java
java project_formatting_printf

Vous verrez la sortie suivante :

Today is Friday, October 15, 2021.

Utilisation de drapeaux (flags)

Les indicateurs (flags) sont utilisés pour ajouter des fonctionnalités spéciales à la sortie. Par exemple :

public static void main(String[] args) {
  double num = 12345.6789;
  System.out.printf("The number is: %,.2f%n", num);
}

Dans le code ci-dessus, , est le séparateur de milliers et %.2f est le spécificateur de format pour les nombres décimaux avec 2 décimales.

Compilez et exécutez le code en utilisant les commandes suivantes :

javac project_formatting_printf.java
java project_formatting_printf

Vous verrez la sortie suivante :

The number is: 12,345.68

Utilisation de la précision

La précision est utilisée pour limiter le nombre de décimales. Par exemple :

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %.2f%n", num);
}

Dans le code ci-dessus, %.2f est le spécificateur de format pour les nombres décimaux avec 2 décimales.

Compilez et exécutez le code en utilisant les commandes suivantes :

javac project_formatting_printf.java
java project_formatting_printf

Vous verrez la sortie suivante :

The number is: 1234.57

Utilisation des majuscules

Pour afficher la sortie en majuscules, nous utilisons la majuscule du caractère de conversion. Par exemple :

public static void main(String[] args) {
  String name = "John Doe";
  System.out.printf("Name: %S%n", name);
}

Dans le code ci-dessus, %S est le spécificateur de format pour les chaînes de caractères en majuscules.

Compilez et exécutez le code en utilisant les commandes suivantes :

javac project_formatting_printf.java
java project_formatting_printf

Vous verrez la sortie suivante :

Name: JOHN DOE

Utilisation du remplissage (padding)

Nous pouvons utiliser le remplissage (padding) pour ajouter des espaces ou des zéros à la sortie. Par exemple :

public static void main(String[] args) {
  int num = 123;
  System.out.printf("The number is: %010d%n", num);
}

Dans le code ci-dessus, %010d est le spécificateur de format pour les entiers sur 10 chiffres et le caractère de remplissage est le zéro.

Compilez et exécutez le code en utilisant les commandes suivantes :

javac project_formatting_printf.java
java project_formatting_printf

Vous verrez la sortie suivante :

The number is: 0000000123

Combinaison de spécificateurs de format

Nous pouvons combiner plusieurs spécificateurs de format pour formater la sortie comme nous le souhaitons. Par exemple :

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %,010.2f%n", num);
}

Dans le code ci-dessus, %010.2f est le spécificateur de format pour les nombres décimaux avec 2 décimales, sur 10 chiffres, et le caractère de remplissage (padding) est le zéro. , est le séparateur de milliers.

Compilez et exécutez le code en utilisant les commandes suivantes :

javac project_formatting_printf.java
java project_formatting_printf

Vous verrez la sortie suivante :

The number is: 01,234.57

Résumé

Félicitations! Vous avez terminé le laboratoire (lab) "Formatting With Printf". Vous pouvez pratiquer davantage de laboratoires sur LabEx pour améliorer vos compétences.