logo

Formatierte Ausgabe in Java mit printf()

Manchmal ist es beim Programmieren wichtig, die Ausgabe in einem bestimmten Format zu drucken. Die meisten Benutzer sind mit der printf-Funktion in C vertraut. Lassen Sie uns in diesem Artikel besprechen, wie wir die Ausgabe mit printf() in Java formatieren können.

Formatieren mit Java Printf()

printf() verwendet Formatspezifizierer zur Formatierung. Es gibt bestimmte Datentypen, die unten aufgeführt sind:



  • Zur Zahlenformatierung
  • Dezimalzahlen formatieren
  • Für boolesche Formatierung
  • Für String-Formatierung
  • Für die Zeichenformatierung
  • Für Datums- und Uhrzeitformatierung

ich). Zur Zahlenformatierung

Die Zahl selbst umfasst Integer, Long usw. Der verwendete Formatierungsspezifizierer ist %d.

Boolescher Wert in c

Nachfolgend finden Sie die Implementierung der oben genannten Methode:

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

>

>

Ausgabe

10,000>

ii). Für die Formatierung von Dezimalzahlen

Die Formatierung von Dezimalzahlen kann mit print() und dem Formatbezeichner %f erfolgen.

Nachfolgend finden Sie die Implementierung der oben genannten Methode:

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

>

>

Ausgabe

Freddie Mercury
3.141593 3.142 3.14>

iii). Für boolesche Formatierung

Die boolesche Formatierung kann je nach gewünschtem Ergebnis mithilfe von printf und (‘%b’ oder ‘%B’) erfolgen.

Nachfolgend finden Sie die Implementierung der oben genannten Methode:

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

>

>

Ausgabe

true TRUE false FALSE>

iv). Für die Zeichenformatierung

Die Zeichenformatierung ist leicht zu verstehen, da sie printf() benötigt und die verwendeten Zeichenformatspezifizierer „%c“ und „%C“ sind.

Nachfolgend finden Sie die Implementierung der oben genannten Methode:

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

>

>

Ausgabe

g G>

v). Für String-Formatierung

Die String-Formatierung erfordert Kenntnisse über Strings und die verwendeten Formatspezifizierer „%s“ und „%S“.

Nachfolgend finden Sie die Implementierung der oben genannten Methode:

Java




jvm

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

>

>

Ausgabe

geeksforgeeks GEEKSFORGEEKS GFG GFG>

vi). Für Datums- und Uhrzeitformatierung

Die Formatierung von Datum und Uhrzeit ist nicht so einfach wie bei dem oben verwendeten Datentyp. Es verwendet mehr als nur einfaches Wissen über Formatspezifizierer, wie im unten genannten Beispiel beobachtet werden kann.

Nachfolgend finden Sie die Implementierung der oben genannten Methode:

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

>

>

Ausgabe

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

Notiz: System.out.format() entspricht printf() und kann ebenfalls verwendet werden.

Andere Formatierungsmethoden

1. Formatierung mit der DecimalFormat-Klasse

DecimalFormat wird zum Formatieren von Dezimalzahlen verwendet.

Nachfolgend finden Sie die Implementierung der oben genannten Methode:

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

>

>

Ausgabe

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. Formatieren von Datumsangaben und Parsen mit der SimpleDateFormat-Klasse

Diese Klasse ist im Paket java.text vorhanden.

Nachfolgend finden Sie die Implementierung der oben genannten Methode:

Java




do und while-Schleife in 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);> >}> }>

>

>

Ausgabe

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