logo

printf() を使用した Java でのフォーマットされた出力

プログラミングでは、指定された形式で出力を印刷することが重要な場合があります。ほとんどのユーザーは C の printf 関数に精通しています。この記事では、Java で printf() を使用して出力をフォーマットする方法について説明します。

Java Printf()を使用したフォーマット

printf() は、書式設定に書式指定子を使用します。以下に示す特定のデータ型があります。



  • 数値の書式設定の場合
  • 10 進数の書式設定
  • ブール形式の場合
  • 文字列のフォーマットの場合
  • 文字の書式設定の場合
  • 日付と時刻の書式設定の場合

私)。数値の書式設定の場合

数値自体には、Integer、Long などが含まれます。使用される書式指定子は %d です。

AndroidからiPhoneを探す

上記のメソッドの実装を以下に示します。

ジャワ








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

>

>

出力

10,000>

ii)。 10 進数の書式設定の場合

10 進数の書式設定は、 print() と書式指定子 %f を使用して行うことができます。

上記のメソッドの実装を以下に示します。

ジャワ




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

>

>

出力

javacが認識されない
3.141593 3.142 3.14>

iii)。ブール形式の場合

ブール書式設定は、必要な結果に応じて printf と ( ‘%b’ または ‘%B’ ) を使用して行うことができます。

上記のメソッドの実装を以下に示します。

ジャワ




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

>

>

出力

true TRUE false FALSE>

iv)。文字の書式設定の場合

文字書式設定は printf() が必要であり、使用される文字書式指定子は「%c」と「%C」であるため、理解しやすいです。

上記のメソッドの実装を以下に示します。

ジャワ




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

>

>

出力

g G>

v)。文字列のフォーマットの場合

文字列の書式設定には、文字列と、「%s」および「%S」を使用する書式指定子に関する知識が必要です。

上記のメソッドの実装を以下に示します。

ジャワ




c ブール値

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

>

>

出力

geeksforgeeks GEEKSFORGEEKS GFG GFG>

ⅵ)。日付と時刻の書式設定の場合

日付と時刻の書式設定は、上で使用したデータ型ほど簡単ではありません。以下で説明する例に見られるように、単純な形式指定子の知識以上のものを使用します。

上記のメソッドの実装を以下に示します。

ジャワ




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

>

>

出力

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

注記: System.out.format() は printf() と同等であり、使用することもできます。

その他のフォーマット方法

1. DecimalFormatクラスを使用した書式設定

DecimalFormat は、10 進数の形式を設定するために使用されます。

上記のメソッドの実装を以下に示します。

ジャワ




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

>

>

出力

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. SimpleDateFormat クラスを使用した日付の書式設定と解析

このクラスは java.text パッケージに存在します。

上記のメソッドの実装を以下に示します。

ジャワ




文字列で比較する

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

>

>

出力

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