logo

Sortie formatée en Java à l'aide de printf()

Parfois, en programmation, il est essentiel d’imprimer la sortie dans un format spécifié donné. La plupart des utilisateurs connaissent la fonction printf en C. Voyons comment formater la sortie avec printf() en Java dans cet article.

Formatage à l'aide de Java Printf()

printf() utilise des spécificateurs de format pour le formatage. Certains types de données sont mentionnés ci-dessous :

  • Pour le formatage des nombres
  • Formatage des nombres décimaux
  • Pour le formatage booléen
  • Pour le formatage des chaînes
  • Pour le formatage des caractères
  • Pour le formatage de la date et de l'heure

je). Pour le formatage des nombres

Le nombre lui-même inclut Integer, Long, etc. Le spécificateur de formatage utilisé est %d.



héritage java

Vous trouverez ci-dessous la mise en œuvre de la méthode ci-dessus :

Java




// Java Program to demonstrate> // Use of printf to> // Formatting Integer> import> java.io.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main (String[] args) {> >int> a=>10000>;> > >//System.out.printf('%.d%n',a);> >System.out.printf(>'%,d%n'>,a);> >}> }>

>

>

Sortir

10,000>

ii). Pour le formatage des nombres décimaux

Le formatage des nombres décimaux peut être effectué à l'aide de print() et du spécificateur de format %f .

Vous trouverez ci-dessous la mise en œuvre de la méthode ci-dessus :

Java




// Java Programs to demonstrate> // Use of Printf() for decimal> // Number Formatting> import> java.io.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >// declaring double> >double> a =>3.14159265359>;> > >// Printing Double Value with> >// different Formatting> >System.out.printf(>'%f '>, a);> >System.out.printf(>'%5.3f '>, a);> >System.out.printf(>'%5.2f '>, a);> >}> }>

>

>

Sortir

3.141593 3.142 3.14>

iii). Pour le formatage booléen

Le formatage booléen peut être effectué en utilisant printf et ( '%b' ou '%B' ) en fonction du résultat souhaité.

nombre premier java

Vous trouverez ci-dessous la mise en œuvre de la méthode ci-dessus :

Java




// Java Programs to demonstrate> // Use of Printf() for decimal> // Boolean Formatting> import> java.io.*;> > // Driver Function> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >int> a =>10>;> >Boolean b =>true>, c =>false>;> >Integer d =>null>;> > >// Fromatting Done using printf> >System.out.printf(>'%b '>, a);> >System.out.printf(>'%B '>, b);> >System.out.printf(>'%b '>, c);> >System.out.printf(>'%B '>, d);> >}> }>

>

>

Sortir

true TRUE false FALSE>

iv). Pour le formatage des caractères

Le formatage des caractères est facile à comprendre car il nécessite printf() et le spécificateur de format de caractère utilisé est « %c » et « %C ».

Vous trouverez ci-dessous la mise en œuvre de la méthode ci-dessus :

Java




// Java Program to Formatt> //> import> java.io.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >char> c =>'g'>;> > >// Formatting Done> >System.out.printf(>'%c '>, c);> > >// Converting into Uppercase> >System.out.printf(>'%C '>, c);> >}> }>

>

>

Sortir

g G>

v). Pour le formatage des chaînes

Le formatage des chaînes nécessite la connaissance des chaînes et du spécificateur de format utilisé « %s » et « %S ».

Vous trouverez ci-dessous la mise en œuvre de la méthode ci-dessus :

Java




// Java Program to implement> // Printf() for String Formatting> import> java.io.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >String str =>'geeksforgeeks'>;> > >// Formatting from lowercase to> >// Uppercase> >System.out.printf(>'%s '>, str);> >System.out.printf(>'%S '>, str);> > >str =>'GFG'>;> >// Vice-versa not possible> >System.out.printf(>'%S '>, str);> >System.out.printf(>'%s '>, str);> >}> }>

alphabet en numéro
>

>

Sortir

geeksforgeeks GEEKSFORGEEKS GFG GFG>

vi). Pour le formatage de la date et de l'heure

Le formatage de la date et de l'heure n'est pas aussi simple que le type de données utilisé ci-dessus. Il utilise plus que de simples connaissances en matière de spécificateur de format, comme le montre l'exemple mentionné ci-dessous.

Vous trouverez ci-dessous la mise en œuvre de la méthode ci-dessus :

Java




// Java Program to demonstrate use of> // printf() for formatting Date-time> import> java.io.*;> import> java.util.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >Date time =>new> Date();> > >System.out.printf(>'Current Time: %tT '>, time);> > >// Another Method with all of them Hour> >// minutes and seconds seperated> >System.out.printf(>'Hours: %tH Minutes: %tM Seconds: %tS '>,> >time,time, time);> > >// Another Method to print the time> >// Followed by am/pm , time in milliseconds> >// nanoseconds and time-zone offset> >System.out.printf(>'%1$tH:%1$tM:%1$tS %1$tp %1$tL %1$tN %1$tz %n'>,> >time);> >}> }>

>

>

Sortir

Current Time: 11:32:36 Hours: 11 Minutes: 32 Seconds: 36 11:32:36 am 198 198000000 +0000>

Note: System.out.format() est équivalent à printf() et peut également être utilisé.

Autres méthodes de formatage

1. Formatage à l'aide de la classe DecimalFormat

DecimalFormat est utilisé pour formater les nombres décimaux.

Vous trouverez ci-dessous la mise en œuvre de la méthode ci-dessus :

Java




// Java program to demonstrate working of DecimalFormat> import> java.text.DecimalFormat;> > // Driver Class> class> JavaFormatter2 {> >// main function> >public> static> void> main(String args[])> >{> >double> num =>123.4567>;> > >// prints only numeric part of a floating number> >DecimalFormat ft =>new> DecimalFormat(>'####'>);> >System.out.println(>'Without fraction part: num = '> >+ ft.format(num));> > >// this will print it upto 2 decimal places> >ft =>new> DecimalFormat(>'#.##'>);> >System.out.println(>'Formatted to Give precision: num = '> >+ ft.format(num));> > >// automatically appends zero to the rightmost part> >// of decimal instead of #,we use digit 0> >ft =>new> DecimalFormat(>'#.000000'>);> >System.out.println(>'appended zeroes to right: num = '> >+ ft.format(num));> > >// automatically appends zero to the leftmost of> >// decimal number instead of #,we use digit 0> >ft =>new> DecimalFormat(>'00000.00'>);> >System.out.println(>'formatting Numeric part : num = '> >+ ft.format(num));> > >// formatting money in dollars> >double> income =>23456.789>;> >ft =>new> DecimalFormat(>'$###,###.##'>);> >System.out.println(>'your Formatted Dream Income : '> >+ ft.format(income));> >}> }>

>

>

Sortir

Without fraction part: num = 123 Formatted to Give precision: num = 123.46 appended zeroes to right: num = 123.456700 formatting Numeric part : num = 00123.46 your Formatted Dream Income : ,456.79>

2. Formatage des dates et analyse à l'aide de la classe SimpleDateFormat

Cette classe est présente dans le package java.text.

Vous trouverez ci-dessous la mise en œuvre de la méthode ci-dessus :

Java




// Java program to demonstrate working of SimpleDateFormat> import> java.text.ParseException;> import> java.text.SimpleDateFormat;> import> java.util.Date;> > // Driver Class> class> Formatter3 {> >// main function> >public> static> void> main(String args[])> >throws> ParseException> >{> >// Formatting as per given pattern in the argument> >SimpleDateFormat ft> >=>new> SimpleDateFormat(>'dd-MM-yyyy'>);> > >String str = ft.format(>new> Date());> >System.out.println(>'Formatted Date : '> + str);> > >// parsing a given String> >str =>'02/18/1995'>;> >ft =>new> SimpleDateFormat(>'MM/dd/yyyy'>);> >Date date = ft.parse(str);> > >// this will print the date as per parsed string> >System.out.println(>'Parsed Date : '> + date);> >}> }>

chiffre romain 1 à 100
>

>

Sortir

Formatted Date : 24-01-2022 Parsed Date : Sat Feb 18 00:00:00 UTC 1995>