Java Tutorial/Development/printf Method
Содержание
- 1 a one-or-two-digit day of the month: %te/%Te
- 2 Conversion characters for date
- 3 Conversion characters for date/time compositions
- 4 Conversion characters for time
- 5 Decimal: %d
- 6 Decimal: %f
- 7 Decimal/Scientific: %g (lower case g)
- 8 Decimal/Scientific: %G (upper case G)
- 9 Demonstrate printf()
- 10 Formated System.out.printf
- 11 Formatting a string and Ouputing to console
- 12 Formatting Characters and Strings
- 13 Formatting Data into a String
- 14 Formatting Numerical Data:
- 15 four digit year: %tY/%TY
- 16 Hashcode: %h (lower case h)
- 17 HASHCODE: %H (upper case H)
- 18 hours and minutes on a 24-hour clock: %tR/%TR
- 19 hours, minutes, and seconds on a 12-hour clock: %tr/%Tr
- 20 hours, minutes, and seconds on a 24-hour clock: %tT/%TT
- 21 ISO tandard date: %tF/%TF
- 22 Locale-specific morning/afternoon indicator: %tp/%Tp
- 23 localized, abbreviated day: %ta/%Ta
- 24 localized, abbreviated month: %tb/%Tb
- 25 localized, abbreviated month: %th/%Th
- 26 localized day name: %tA/%TA
- 27 localized month name: %tB/%TB
- 28 Lowercase Hexadecimal: %a
- 29 Lowercase hexadecimal: %x
- 30 milliseconds since the epoch: %TQ
- 31 milliseconds: %tL/%TL
- 32 month/day/year: %tD/%TD
- 33 nanoseconds: %tN/%TN
- 34 Octal: %o
- 35 one-or-two digit hour on a 12-hour: %tl/%Tl
- 36 one-or-two digit hour on a 24-hour clock: %tk/%Tk
- 37 output a % character
- 38 Output URL: %b (lower case b)
- 39 Output URL: %B (upper case B)
- 40 printf to command line summary
- 41 Printing a space before non-negative values
- 42 Printing numbers with and without the + flag
- 43 Printing with the 0 (zero) flag fills in leading zeros
- 44 Reordering output with argument indices.
- 45 RFC 822 numeric time zone indicator: %tz/%Tz
- 46 Right justifying and left justifying values
- 47 Right justifying integers in fields: Field Width
- 48 Scientific notation: %e (lower case e)
- 49 Scientific notation: %E (upper case E)
- 50 seconds since the epoch: %ts/%Ts
- 51 Specifying the Width and Precision
- 52 string: %s (lower case s)
- 53 STRING: %S (upper case S)
- 54 three-digit day of the year: %tj/%Tj
- 55 Time zone abbreviation: %tZ/%TZ
- 56 two-digit century: %tC/%TC
- 57 two-digit day of the month: %td/%Td
- 58 two digit hour on a 12-hour clock: %tI/%TI
- 59 Two digit hour on a 24-hour clock: %tH/%TH
- 60 two digit minutes ranging from 00 to 59: %tH / %TH
- 61 two-digit month: %tm/%Tm
- 62 two digit seconds ranging from 00 to 60 : %tS/%TS
- 63 two-digit year: %ty/%Ty
- 64 Unix date format: %tc/%Tc
- 65 Uppercase Hexadecimal: %A
- 66 Uppercase hexadecimal: %X
- 67 Using character and string conversion characters.
- 68 Using floating-point conversion characters
- 69 Using Java"s printf( ) Method
- 70 Using precision for floating-point numbers and strings
- 71 Using the b, B, h, H, % and n conversion characters.
- 72 Using the comma (,) flag to display numbers with thousands separator
- 73 Using the ( flag to place parentheses around negative numbers
- 74 Using the # flag with conversion characters o and x
- 75 Using the integral conversion characters
a one-or-two-digit day of the month: %te/%Te
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("a one-or-two-digit day of the month: %te/%Te\n", now, now);
}
}
a one-or-two-digit day of the month: 24/24
Conversion characters for date
import java.util.Calendar;
public class MainClass
{
public static void main( String args[] )
{
Calendar dateTime = Calendar.getInstance();
System.out.printf( "%1$tA, %1$tB %1$td, %1$tY\n", dateTime );
System.out.printf( "%1$TA, %1$TB %1$Td, %1$TY\n", dateTime );
System.out.printf( "%1$ta, %1$tb %1$te, %1$ty\n", dateTime );
}
}
Thursday, May 24, 2007 THURSDAY, MAY 24, 2007 Thu, May 24, 07
Conversion characters for date/time compositions
import java.util.Calendar;
public class MainClass
{
public static void main( String args[] )
{
Calendar dateTime = Calendar.getInstance();
System.out.printf( "%tc\n", dateTime );
System.out.printf( "%tF\n", dateTime );
System.out.printf( "%tD\n", dateTime );
System.out.printf( "%tr\n", dateTime );
System.out.printf( "%tT\n", dateTime );
}
}
Thu May 24 16:07:04 PDT 2007 2007-05-24 05/24/07 04:07:04 PM 16:07:04
Conversion characters for time
import java.util.Calendar;
public class MainClass
{
public static void main( String args[] )
{
Calendar dateTime = Calendar.getInstance();
System.out.printf( "%1$tH:%1$tM:%1$tS\n", dateTime );
System.out.printf( "%1$tZ %1$tI:%1$tM:%1$tS", dateTime );
}
}
16:07:40 PDT 04:07:40
Decimal: %d
public class MainClass {
public static void main(String[] args) {
int n = 1023;
System.out.printf("Decimal: %d\n", n);
}
}
Decimal: 1023
Decimal: %f
public class MainClass {
public static void main(String[] args) {
System.out.printf("Decimal: %f\n", Math.PI);
}
}
Decimal: 3.141593
Decimal/Scientific: %g (lower case g)
public class MainClass {
public static void main(String[] args) {
System.out.printf("Decimal/Scientific: %g\n", Math.PI);
}
}
Decimal/Scientific: 3.14159
Decimal/Scientific: %G (upper case G)
public class MainClass {
public static void main(String[] args) {
System.out.printf("Decimal/Scientific: %G\n", Math.PI);
}
}
Decimal/Scientific: 3.14159
Demonstrate printf()
public class MainClass {
public static void main(String args[]) {
System.out.printf("%d %(d %+d %05d\n", 3, -3, 3, 3);
System.out.printf("Default floating-point format: %f\n", 1234567.123);
System.out.printf("Floating-point with commas: %,f\n", 1234567.123);
System.out.printf("Negative floating-point default: %,f\n", -1234567.123);
System.out.printf("Negative floating-point option: %,(f\n", -1234567.123);
System.out.printf("Line-up positive and negative values:\n");
System.out.printf("% ,.2f\n% ,.2f\n", 1234567.123, -1234567.123);
}
}
3 (3) +3 00003 Default floating-point format: 1234567.123000 Floating-point with commas: 1,234,567.123000 Negative floating-point default: -1,234,567.123000 Negative floating-point option: (1,234,567.123000) Line-up positive and negative values: 1,234,567.12 -1,234,567.12
Formated System.out.printf
public class MainClass
{
public static void main( String args[] )
{
System.out.printf( "%s\n%s\n", "Welcome to", "Java Programming!" );
}
}
Welcome to Java Programming!
Formatting a string and Ouputing to console
public class MainClass {
public static void main(String[] a) {
StringBuffer buf = new StringBuffer();
java.util.Formatter formatter = new java.util.Formatter(buf);
double x = 27.5, y = 33.75;
formatter.format("x = %15.2f y = %14.3g", x, y);
System.out.print(buf);
}
}
x = 27.50 y = 33.8
Formatting Characters and Strings
public class MainClass {
public static void main(String[] a) {
int count = 0;
for (int ch = "a"; ch <= "z"; ch++) {
System.out.printf(" %1$4c%1$4x", ch);
if (++count % 6 == 0) {
System.out.printf("%n");
}
System.out.printf(" %1$4c%<4x", ch);
}
}
}
a 61 a 61 b 62 b 62 c 63 c 63 d 64 d 64 e 65 e 65 f 66 f 66 g 67 g 67 h 68 h 68 i 69 i 69 j 6a j 6a k 6b k 6b l 6c l 6c m 6d m 6d n 6e n 6e o 6f o 6f p 70 p 70 q 71 q 71 r 72 r 72 s 73 s 73 t 74 t 74 u 75 u 75 v 76 v 76 w 77 w 77 x 78 x 78 y 79 y 79 z 7a z 7a
Formatting Data into a String
public class MainClass {
public static void main(String[] a) {
double x = 27.5, y = 33.75;
String outString = String.format("x = %15.2f y = %14.3g", x, y);
System.out.println(outString);
}
}
x = 27.50 y = 33.8
Formatting Numerical Data:
public class MainClass {
public static void main(String[] a) {
double x = 27.5, y = 33.75;
System.out.printf("x = %f y = %g", x, y);
}
}
a = 255 b = 5 c = 17
four digit year: %tY/%TY
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("four digit year: %tY/%TY\n", now, now);
}
}
Hashcode: %h (lower case h)
import java.net.MalformedURLException;
import java.net.URL;
public class MainClass {
public static void main(String[] args) throws MalformedURLException {
URL u = new URL("http://www.jexp.ru");
System.out.printf("hashcode: %h\n", u);
}
}
hashcode: 44e3d762
HASHCODE: %H (upper case H)
import java.net.MalformedURLException;
import java.net.URL;
public class MainClass {
public static void main(String[] args) throws MalformedURLException {
URL u = new URL("http://www.jexp.ru");
System.out.printf("HASHCODE: %H\n", u);
}
}
HASHCODE: 44E3D762
hours and minutes on a 24-hour clock: %tR/%TR
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("hours and minutes on a 24-hour clock: %tR/%TR\n", now, now);
}
}
hours and minutes on a 24-hour clock: 15:57/15:57
hours, minutes, and seconds on a 12-hour clock: %tr/%Tr
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("hours, minutes, and seconds on a 12-hour clock: %tr/%Tr\n", now, now);
}
}
hours, minutes, and seconds on a 12-hour clock: 03:57:55 PM/03:57:55 PM
hours, minutes, and seconds on a 24-hour clock: %tT/%TT
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("hours, minutes, and seconds on a 24-hour clock: %tT/%TT\n", now, now);
}
}
hours, minutes, and seconds on a 24-hour clock: 15:57:42/15:57:42
ISO tandard date: %tF/%TF
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("ISO 8601 standard date: %tF/%TF\n", now, now);
}
}
ISO 8601 standard date: 2007-05-24/2007-05-24
Locale-specific morning/afternoon indicator: %tp/%Tp
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("Locale-specific morning/afternoon indicator: %tp/%Tp\n", now, now);
}
}
//
Locale-specific morning/afternoon indicator: am/AM
localized, abbreviated day: %ta/%Ta
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("localized, abbreviated day: %ta/%Ta\n", now, now);
}
}
localized, abbreviated day: Thu/THU
localized, abbreviated month: %tb/%Tb
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("localized, abbreviated month: %tb/%Tb\n", now, now);
}
}
//
localized, abbreviated month: May/MAY
localized, abbreviated month: %th/%Th
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("localized, abbreviated month: %th/%Th\n", now, now);
}
}
//
localized, abbreviated month: May/MAY
localized day name: %tA/%TA
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("localized day name: %tA/%TA\n", now, now);
}
}
localized day name: Thursday/THURSDAY
localized month name: %tB/%TB
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("localized month name: %tB/%TB\n", now, now);
}
}
//
localized month name: May/MAY
Lowercase Hexadecimal: %a
public class MainClass {
public static void main(String[] args) {
System.out.printf("Lowercase Hexadecimal: %a\n", Math.PI);
}
}
Lowercase Hexadecimal: 0x1.921fb54442d18p1
Lowercase hexadecimal: %x
public class MainClass {
public static void main(String[] args) {
int n = 1023;
System.out.printf("%x \n", n);
}
}
3ff
milliseconds since the epoch: %TQ
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("milliseconds since the epoch: %TQ\n", now);
}
}
//
milliseconds since the epoch: 1178825834349
milliseconds: %tL/%TL
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("milliseconds: %tL/%TL\n", now, now);
}
}
//
milliseconds: 023/023
month/day/year: %tD/%TD
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("month/day/year: %tD/%TD\n", now, now);
}
}
month/day/year: 05/24/07/05/24/07
nanoseconds: %tN/%TN
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("nanoseconds: %tN/%TN\n", now, now);
}
}
//
nanoseconds: 007000000/007000000
Octal: %o
public class MainClass {
public static void main(String[] args) {
int n = 1023;
System.out.printf("Octal: %o\n", n);
}
}
Octal: 1777
one-or-two digit hour on a 12-hour: %tl/%Tl
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("one-or-two digit hour on a 12-hour: %tl/%Tl\n", now, now);
}
}
//
one-or-two digit hour on a 12-hour: 11/11
one-or-two digit hour on a 24-hour clock: %tk/%Tk
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("one-or-two digit hour on a 24-hour clock: %tk/%Tk\n", now, now);
}
}
//
one-or-two digit hour on a 24-hour clock: 11/11
output a % character
Because a % sign always indicates the start of a format specifier, you must use "%%" in the format string when you want to output a % character.
public class MainClass {
public static void main(String[] a) {
int percentage = 75;
System.out.printf("\n%1$d%%", percentage);
String str = "The quick brown fox.";
System.out.printf("%nThe string is:%n%s%n%1$25s", str);
}
}
75% The string is: The quick brown fox. The quick brown fox.
Output URL: %b (lower case b)
import java.net.MalformedURLException;
import java.net.URL;
public class MainClass {
public static void main(String[] args) throws MalformedURLException {
URL u = new URL("http://www.jexp.ru");
System.out.printf("boolean: %b\n", u);
}
}
boolean: true
Output URL: %B (upper case B)
import java.net.MalformedURLException;
import java.net.URL;
public class MainClass {
public static void main(String[] args) throws MalformedURLException {
URL u = new URL("http://www.jexp.ru");
System.out.printf("BOOLEAN: %B\n", u);
}
}
BOOLEAN: TRUE
printf to command line summary
%[argument_index$][flags][width][.precision]conversion
square brackets is for optional format.
conversion specifying how to display the argument:
"d": decimal integer
"o": octal integer
"x": hexadecimal integer
"f": decimal notation for float
"g": scientific notation (with an exponent) for float
"a": hexadecimal with an exponent for float
"c": for a character
"s": for a string.
"b": for a boolean value, so its output is "true" or "false".
"h": output the hashcode of the argument in hexadecimal form.
"n": "%n" has the same effect as "\n".
argument_index: "1$" refers to the first argument,
"2$" refers to the second argument,
"<" followed by $ indicate that the argument should be the same as
that of the previous format specification
flags: "-" left-justified
"^" and uppercase
"+" output a sign for numerical values.
"0" forces numerical values to be zero-padded.
width: Specifies the field width for outputting the argument and represents the minimum number of
characters to be written to the output.
precision: used to restrict the output depending on the conversion.
It specifies the number of digits of precision when
outputting floating-point values.
Printing a space before non-negative values
public class MainClass
{
public static void main( String args[] )
{
System.out.printf( "% d\n% d\n", 547, -547 );
}
}
547 -547
Printing numbers with and without the + flag
public class MainClass
{
public static void main( String args[] )
{
System.out.printf( "%d\t%d\n", 786, -786 );
System.out.printf( "%+d\t%+d\n", 786, -786 );
}
}
786 -786 +786 -786
Printing with the 0 (zero) flag fills in leading zeros
public class MainClass
{
public static void main( String args[] )
{
System.out.printf( "%+09d\n", 452 );
System.out.printf( "%09d\n", 452 );
System.out.printf( "% 9d\n", 452 );
}
}
+00000452 000000452 452
Reordering output with argument indices.
public class MainClass
{
public static void main( String args[] )
{
System.out.printf(
"Parameter list without reordering: %s %s %s %s\n",
"first", "second", "third", "fourth" );
System.out.printf(
"Parameter list after reordering: %4$s %3$s %2$s %1$s\n",
"first", "second", "third", "fourth" );
}
}
Parameter list without reordering: first second third fourth Parameter list after reordering: fourth third second first
RFC 822 numeric time zone indicator: %tz/%Tz
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("RFC 822 numeric time zone indicator: %tz/%Tz\n", now, now);
}
}
//
RFC 822 numeric time zone indicator: -0800/-0800
Right justifying and left justifying values
public class MainClass
{
public static void main( String args[] )
{
System.out.println( "Columns:" );
System.out.println( "0123456789012345678901234567890123456789\n" );
System.out.printf( "%10s%10d%10c%10f\n\n", "hello", 7, "a", 1.23 );
System.out.printf( "%-10s%-10d%-10c%-10f\n", "hello", 7, "a", 1.23 );
}
}
Columns: 0123456789012345678901234567890123456789 hello 7 a 1.230000 hello 7 a 1.230000
Right justifying integers in fields: Field Width
public class MainClass
{
public static void main( String args[] )
{
System.out.printf( "%4d\n", 1 );
System.out.printf( "%4d\n", 12 );
System.out.printf( "%4d\n", 123 );
System.out.printf( "%4d\n", 1234 );
System.out.printf( "%4d\n\n", 12345 ); // data too large
System.out.printf( "%4d\n", -1 );
System.out.printf( "%4d\n", -12 );
System.out.printf( "%4d\n", -123 );
System.out.printf( "%4d\n", -1234 ); // data too large
System.out.printf( "%4d\n", -12345 ); // data too large
}
}
1 12 123 1234 12345 -1 -12 -123 -1234 -12345
Scientific notation: %e (lower case e)
public class MainClass {
public static void main(String[] args) {
System.out.printf("Scientific notation: %e\n", Math.PI);
}
}
Scientific notation: 3.141593e+00
Scientific notation: %E (upper case E)
public class MainClass {
public static void main(String[] args) {
System.out.printf("Scientific notation: %E\n", Math.PI);
}
}
Scientific notation: 3.141593E+00
seconds since the epoch: %ts/%Ts
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("seconds since the epoch: %ts/%Ts\n", now, now);
}
}
//
seconds since the epoch: 1178825794/1178825794
Specifying the Width and Precision
public class MainClass {
public static void main(String[] args) {
double x = 27.5, y = 33.75;
System.out.printf("x = %15f y = %8g", x, y);
}
}
x = 27.50 y = 33.8
string: %s (lower case s)
import java.net.MalformedURLException;
import java.net.URL;
public class MainClass {
public static void main(String[] args) throws MalformedURLException {
URL u = new URL("http://www.jexp.ru");
System.out.printf("string: %s\n", u);
}
}
string: http://www.jexp.ru
STRING: %S (upper case S)
import java.net.MalformedURLException;
import java.net.URL;
public class MainClass {
public static void main(String[] args) throws MalformedURLException {
URL u = new URL("http://www.jexp.ru");
System.out.printf("STRING: %S\n", u);
}
}
STRING: HTTP://WWW.jexp.ru
three-digit day of the year: %tj/%Tj
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("three-digit day of the year: %tj/%Tj\n", now, now);
}
}
three-digit day of the year: 144/144
Time zone abbreviation: %tZ/%TZ
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("Time zone abbreviation: %tZ/%TZ\n", now, now);
}
}
//
Time zone abbreviation: PDT/PDT
two-digit century: %tC/%TC
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("two-digit century: %tC/%TC\n", now, now);
}
}
two-digit century: 20/20
two-digit day of the month: %td/%Td
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("two-digit day of the month: %td/%Td\n", now, now);
}
}
two-digit day of the month: 24/24
two digit hour on a 12-hour clock: %tI/%TI
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("two digit hour on a 12-hour clock: %tI/%TI\n", now, now);
}
}
//
two digit hour on a 12-hour clock: 11/11
Two digit hour on a 24-hour clock: %tH/%TH
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("two digit hour on a 24-hour clock: %tH/%TH\n", now, now);
}
}
//
two digit hour on a 24-hour clock: 11/11
two digit minutes ranging from 00 to 59: %tH / %TH
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("two digit minutes ranging from 00 to 59: %tH / %TH\n", now, now);
}
}
//
two-digit month: %tm/%Tm
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("two-digit month: %tm/%Tm\n", now, now);
}
}
two-digit month: 05/05
two digit seconds ranging from 00 to 60 : %tS/%TS
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("two digit seconds ranging from 00 to 60 : %tS/%TS\n", now, now);
}
}
//
two digit seconds ranging from 00 to 60 : 57/57
two-digit year: %ty/%Ty
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("two-digit year: %ty/%Ty\n", now, now);
}
}
two-digit year: 07/07
Unix date format: %tc/%Tc
import java.util.Date;
public class MainClass {
public static void main(String[] args) {
Date now = new Date();
System.out.printf("Unix date format: %tc/%Tc\n", now, now);
}
}
Unix date format: Thu May 24 15:58:29 PDT 2007/THU MAY 24 15:58:29 PDT 2007
Uppercase Hexadecimal: %A
public class MainClass {
public static void main(String[] args) {
System.out.printf("Uppercase Hexadecimal: %A\n", Math.PI);
}
}
Uppercase Hexadecimal: 0X1.921FB54442D18P1
Uppercase hexadecimal: %X
public class MainClass {
public static void main(String[] args) {
int n = 1023;
System.out.printf("%X\n", n);
}
}
3FF
Using character and string conversion characters.
public class MainClass
{
public static void main( String args[] )
{
char character = "A";
String string = "This is also a string";
Integer integer = 1234; // initialize integer (autoboxing)
System.out.printf( "%c\n", character );
System.out.printf( "%s\n", "This is a string" );
System.out.printf( "%s\n", string );
System.out.printf( "%S\n", string );
System.out.printf( "%s\n", integer ); // implicit call to toString
}
}
A This is a string This is also a string THIS IS ALSO A STRING 1234
Using floating-point conversion characters
public class MainClass
{
public static void main( String args[] )
{
System.out.printf( "%e\n", 12345678.9 );
System.out.printf( "%e\n", +12345678.9 );
System.out.printf( "%e\n", -12345678.9 );
System.out.printf( "%E\n", 12345678.9 );
System.out.printf( "%f\n", 12345678.9 );
System.out.printf( "%g\n", 12345678.9 );
System.out.printf( "%G\n", 12345678.9 );
}
}
1.234568e+07 1.234568e+07 -1.234568e+07 1.234568E+07 12345678.900000 1.23457e+07 1.23457E+07
Using Java"s printf( ) Method
The printf( ) method automatically uses Formatter to create a formatted string.
The printf( ) method is defined by both PrintStream and PrintWriter.
For PrintStream, printf( ) has these forms:
- PrintStream printf(String fmtString, Object ... args)
- PrintStream printf(Local loc, String fmtString, Object ... args)
The first version writes args to standard output in the format specified by fmtString, using the default locale.
The second lets you specify a locale.
Using precision for floating-point numbers and strings
public class MainClass
{
public static void main( String args[] )
{
double f = 123.94536;
String s = "Happy Birthday";
System.out.printf( "Using precision for floating-point numbers\n" );
System.out.printf( "\t%.3f\n\t%.3e\n\t%.3g\n\n", f, f, f );
System.out.printf( "Using precision for strings\n" );
System.out.printf( "\t%.11s\n", s );
} // end main
}
Using precision for floating-point numbers 123.945 1.239e+02 124 Using precision for strings Happy Birth
Using the b, B, h, H, % and n conversion characters.
public class MainClass
{
public static void main( String args[] )
{
Object test = null;
System.out.printf( "%b\n", false );
System.out.printf( "%b\n", true );
System.out.printf( "%b\n", "Test" );
System.out.printf( "%B\n", test );
System.out.printf( "Hashcode of \"hello\" is %h\n", "hello" );
System.out.printf( "Hashcode of \"Hello\" is %h\n", "Hello" );
System.out.printf( "Hashcode of null is %H\n", test );
System.out.printf( "Printing a %% in a format string\n" );
System.out.printf( "Printing a new line %nnext line starts here" );
}
}
false true true FALSE Hashcode of "hello" is 5e918d2 Hashcode of "Hello" is 42628b2 Hashcode of null is NULL Printing a % in a format string Printing a new line next line starts here
Using the comma (,) flag to display numbers with thousands separator
public class MainClass
{
public static void main( String args[] )
{
System.out.printf( "%,d\n", 58625 );
System.out.printf( "%,.2f\n", 58625.21 );
System.out.printf( "%,.2f", 12345678.9 );
}
}
58,625 58,625.21 12,345,678.90
Using the ( flag to place parentheses around negative numbers
public class MainClass
{
public static void main( String args[] )
{
System.out.printf( "%(d\n", 50 );
System.out.printf( "%(d\n", -50 );
System.out.printf( "%(.1e\n", -50.0 );
}
}
50 (50) (5.0e+01)
Using the # flag with conversion characters o and x
public class MainClass
{
public static void main( String args[] )
{
int c = 31; // initialize c
System.out.printf( "%#o\n", c );
System.out.printf( "%#x\n", c );
}
}
037 0x1f
Using the integral conversion characters
public class MainClass
{
public static void main( String args[] )
{
System.out.printf( "%d\n", 26 );
System.out.printf( "%d\n", +26 );
System.out.printf( "%d\n", -26 );
System.out.printf( "%o\n", 26 );
System.out.printf( "%x\n", 26 );
System.out.printf( "%X\n", 26 );
}
}
26 26 -26 32 1a 1A