logo

Output formattato in Java utilizzando printf()

A volte nella programmazione è essenziale stampare l'output in un formato specifico. La maggior parte degli utenti ha familiarità con la funzione printf in C. Parliamo di come possiamo formattare l'output con printf() in Java in questo articolo.

Formattazione utilizzando Java Printf()

printf() utilizza gli specificatori di formato per la formattazione. Esistono alcuni tipi di dati menzionati di seguito:

  • Per la formattazione dei numeri
  • Formattazione dei numeri decimali
  • Per la formattazione booleana
  • Per la formattazione delle stringhe
  • Per la formattazione dei caratteri
  • Per la formattazione di data e ora

io). Per la formattazione dei numeri

Il numero stesso include Integer, Long, ecc. L'identificatore di formattazione utilizzato è %d.



vicky kaushal età

Di seguito è riportata l'implementazione del metodo sopra:

Giava




// 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);> >}> }>

>

>

Produzione

10,000>

ii). Per la formattazione dei numeri decimali

La formattazione del numero decimale può essere eseguita utilizzando print() e lo specificatore di formato %f .

Di seguito è riportata l'implementazione del metodo sopra:

Giava




// 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);> >}> }>

>

>

Produzione

3.141593 3.142 3.14>

iii). Per la formattazione booleana

La formattazione booleana può essere eseguita utilizzando printf e ('%b' o '%B') a seconda del risultato necessario.

Di seguito è riportata l'implementazione del metodo sopra:

Giava




// 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);> >}> }>

>

>

Produzione

true TRUE false FALSE>

iv). Per la formattazione dei caratteri

La formattazione dei caratteri è facile da capire poiché richiede printf() e gli identificatori di formato Charracter utilizzati sono '%c' e '%C'.

Di seguito è riportata l'implementazione del metodo sopra:

Giava




// 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);> >}> }>

scaricare video da youtube con vlc

>

>

Produzione

g G>

v). Per la formattazione delle stringhe

La formattazione delle stringhe richiede la conoscenza delle stringhe e dell'identificatore di formato utilizzato '%s' e '%S'.

Di seguito è riportata l'implementazione del metodo sopra:

Giava




// 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);> >}> }>

>

>

Produzione

geeksforgeeks GEEKSFORGEEKS GFG GFG>

vi). Per la formattazione di data e ora

La formattazione di data e ora non è semplice come il tipo di dati utilizzato sopra. Utilizza più della semplice conoscenza dello specificatore di formato che può essere osservata nell'esempio menzionato di seguito.

Di seguito è riportata l'implementazione del metodo sopra:

Giava

conversione da stringa a int in 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);> >}> }>

>

>

Produzione

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

Nota: System.out.format() è equivalente a printf() e può anche essere utilizzato.

Altri metodi per la formattazione

1. Formattazione utilizzando la classe DecimalFormat

DecimalFormat viene utilizzato per formattare i numeri decimali.

Di seguito è riportata l'implementazione del metodo sopra:

Giava

cos'è Ubuntu essenziale per la compilazione




// 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));> >}> }>

>

>

Produzione

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. Formattazione delle date e analisi utilizzando la classe SimpleDateFormat

Questa classe è presente nel pacchetto java.text.

Di seguito è riportata l'implementazione del metodo sopra:

Giava




// 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);> >}> }>

>

>

Produzione

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