java.lang.Object | |
↳ | java.util.Formatter |
The Formatter
class is a String-formatting utility that is designed
to work like the printf
function of the C programming language.
Its key methods are the format
methods which create a formatted
String
by replacing a set of placeholders (format tokens) with formatted
values. The style used to format each value is determined by the format
token used. For example, the call
format("My decimal value is %d and my String is %s.", 3, "Hello");
returns the String
My decimal value is 3 and my String is Hello.
The format token consists of a percent sign, optionally followed
by flags and precision arguments, and then a single character that
indicates the type of value
being formatted. If the type is a time/date, then the type character
t
is followed by an additional character that indicates how the
date is to be formatted. The two characters <$
immediately
following the % sign indicate that the previous value should be used again
instead of moving on to the next value argument. A number n
and a dollar sign immediately following the % sign make n the next argument
to be used.
The available choices are the following:
Text value types | |||
s |
String | format("%s, %s", "hello", "Hello"); |
hello, Hello |
S , s |
String to capitals | format("%S, %S", "hello", "Hello"); |
HELLO, HELLO |
c |
Character | format("%c, %c", 'd', 0x65); |
d, e |
C |
Character to capitals | format("%C, %C", 'd', 0x65); |
D, E |
Text option flags The value between the option and the type character indicates the minimum width in characters of the formatted value |
|||
- |
Left justify (width value is required) | format("%-3C, %3C", 'd', 0x65); |
D , E |
Integer types | |||
d |
int, formatted as decimal | format("%d, %d"1$, 35, 0x10); |
35, 16 |
o |
int, formatted as octal | format("%o, %o", 8, 010); |
10, 10 |
X , x |
int, formatted as hexidecimal | format("%x, %X", 10, 10); |
a, A |
Integer option flags The value between the option and the type character indicates the minimum width in characters of the formatted value |
|||
+ |
lead with the number's sign | format("%+d, %+4d", 5, 5); |
+5, +5 |
- |
Left justify (width value is required) | format("%-6dx", 5); |
5 x |
# |
Print the leading characters that indicate hexidecimal or octal (for use only with hex and octal types) | format("%#o", 010); |
010 |
|
A space indicates that non-negative numbers should have a leading space. | format("x% d% 5d", 4, 4); |
x 4 4 |
0 |
Pad the number with leading zeros (width value is required) | format("%07d, %03d", 4, 5555); |
0000004, 5555 |
( |
Put parentheses around negative numbers (decimal only) | format("%(d, %(d, %(6d", 12, -12, -12); |
12, (12), (12) |
Float types A value immediately following the % symbol gives the minimum width in characters of the formatted value; if it is followed by a period and another integer, then the second value gives the precision (6 by default). |
|||
f |
float (or double) formatted as a decimal, where the precision indicates the number of digits after the decimal. | format("%f %<.1f %<1.5f %<10f %<6.0f", 123.456f); |
123.456001 123.5 123.45600 123.456001 123 |
E , e |
float (or double) formatted in decimal exponential notation, where the precision indicates the number of significant digits. | format("%E %<.1e %<1.5E %<10E %<6.0E", 123.456f); |
1.234560E+02 1.2e+02 1.23456E+02 1.234560E+02 1E+02 |
G , g |
float (or double) formatted in decimal exponential notation , where the precision indicates the maximum number of significant digits. | format("%G %<.1g %<1.5G %<10G %<6.0G", 123.456f); |
123.456 1e+02 123.46 123.456 1E+02 |
A , a |
float (or double) formatted as a hexidecimal in exponential notation, where the precision indicates the number of significant digits. | format("%A %<.1a %<1.5A %<10A %<6.0A", 123.456f); |
0X1.EDD2F2P6 0x1.fp6 0X1.EDD2FP6 0X1.EDD2F2P6 0X1.FP6 |
Float-type option flags See the Integer-type options. The options for float-types are the same as for integer types with one addition: |
|||
, |
Use a comma in place of a decimal if the locale requires it. | format(new Locale("fr"), "%,7.2f", 6.03f); |
6,03 |
Date types | |||
t , T |
Date | format(new Locale("fr"), "%tB %TB", Calendar.getInstance(), Calendar.getInstance()); |
avril AVRIL |
Date format precisions The format precision character follows the t . |
|||
A , a |
The day of the week | format("%ta %tA", cal, cal); |
Tue Tuesday |
b , B , h |
The name of the month | format("%tb % |
Apr April Apr |
C |
The century | format("%tC\n", cal); |
20 |
d , e |
The day of the month (with or without leading zeros) | format("%td %te", cal, cal); |
01 1 |
F |
The complete date formatted as YYYY-MM-DD | format("%tF", cal); |
2008-04-01 |
D |
The complete date formatted as MM/DD/YY (not corrected for locale) | format(new Locale("en_US"), "%tD", cal); |
04/01/08 04/01/08 |
j |
The number of the day (from the beginning of the year). | format("%tj\n", cal); |
092 |
m |
The number of the month | format("%tm\n", cal); |
04 |
y , Y |
The year | format("%ty %tY", cal, cal); |
08 2008 |
H , I , k , l |
The hour of the day, in 12 or 24 hour format, with or without a leading zero | format("%tH %tI %tk %tl", cal, cal, cal, cal); |
16 04 16 4 |
p |
a.m. or p.m. | format("%tp %Tp", cal, cal); |
pm PM |
M , S , L , N |
The minutes, seconds, milliseconds, and nanoseconds | format("%tM %tS %tL %tN", cal, cal, cal, cal); |
08 17 359 359000000 |
Z , z |
The time zone: its abbreviation or offset from GMT | format("%tZ %tz", cal, cal); |
CEST +0100 |
R , r , T |
The complete time | format("%tR %tr %tT", cal, cal, cal); |
16:15 04:15:32 PM 16:15:32 |
s , Q |
The number of seconds or milliseconds from "the epoch" (1 January 1970 00:00:00 UTC) | format("%ts %tQ", cal, cal); |
1207059412 1207059412656 |
c |
The complete time and date | format("%tc", cal); |
Tue Apr 01 16:19:17 CEST 2008 |
Other data types | |||
B , b |
Boolean | format("%b, %B", true, false); |
true, FALSE |
H , h |
Hashcode | format("%h, %H", obj, obj); |
190d11, 190D11 |
n |
line separator | format("first%nsecond", "???"); |
first |
Escape sequences | |||
% |
Escape the % character | format("%d%%, %d", 50, 60); |
50%, 60 |
An instance of Formatter can be created to write the formatted
output to standard types of output streams. Its functionality can
also be accessed through the format methods of an output stream
or of String
:
System.out.println(String.format("%ty\n", cal));
System.out.format("%ty\n", cal);
The class is not multi-threaded safe. The user is responsible for
maintaining a thread-safe design if a Formatter
is
accessed by multiple threads.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Formatter.BigDecimalLayoutForm | The enumeration giving the available styles for formatting very large decimal numbers. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructs a
Formatter . | |||||||||||
Constructs a
Formatter whose output will be written to the
specified Appendable . | |||||||||||
Constructs a
Formatter with the specified Locale . | |||||||||||
Constructs a
Formatter with the specified Locale
and whose output will be written to the
specified Appendable . | |||||||||||
Constructs a
Formatter whose output is written to the specified file. | |||||||||||
Constructs a
Formatter whose output is written to the specified file. | |||||||||||
Constructs a
Formatter with the given Locale and charset,
and whose output is written to the specified file. | |||||||||||
Constructs a
Formatter whose output is written to the specified File . | |||||||||||
Constructs a
Formatter with the given charset,
and whose output is written to the specified File . | |||||||||||
Constructs a
Formatter with the given Locale and charset,
and whose output is written to the specified File . | |||||||||||
Constructs a
Formatter whose output is written to the specified OutputStream . | |||||||||||
Constructs a
Formatter with the given charset,
and whose output is written to the specified OutputStream . | |||||||||||
Constructs a
Formatter with the given Locale and charset,
and whose output is written to the specified OutputStream . | |||||||||||
Constructs a
Formatter whose output is written to the specified PrintStream . |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Closes the
Formatter . | |||||||||||
Flushes the
Formatter . | |||||||||||
Writes a formatted string to the output destination of the
Formatter . | |||||||||||
Writes a formatted string to the output destination of the
Formatter . | |||||||||||
Returns the last
IOException thrown by the Formatter 's output
destination. | |||||||||||
Returns the
Locale of the Formatter . | |||||||||||
Returns the output destination of the
Formatter . | |||||||||||
Returns the content by calling the
toString() method of the output
destination. |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class java.lang.Object
| |||||||||||
From interface java.io.Closeable
| |||||||||||
From interface java.io.Flushable
|
Constructs a Formatter
.
The output is written to a StringBuilder
which can be acquired by invoking
out()
and whose content can be obtained by calling
toString()
.
The Locale
for the Formatter
is the default Locale
.
Constructs a Formatter
whose output will be written to the
specified Appendable
.
The locale for the Formatter
is the default Locale
.
a | the output destination of the Formatter . If a is null ,
then a StringBuilder will be used.
|
---|
Constructs a Formatter
with the specified Locale
.
The output is written to a StringBuilder
which can be acquired by invoking
out()
and whose content can be obtained by calling
toString()
.
l | the Locale of the Formatter . If l is null ,
then no localization will be used.
|
---|
Constructs a Formatter
with the specified Locale
and whose output will be written to the
specified Appendable
.
a | the output destination of the Formatter . If a is null ,
then a StringBuilder will be used. |
---|---|
l | the Locale of the Formatter . If l is null ,
then no localization will be used.
|
Constructs a Formatter
whose output is written to the specified file.
The charset of the Formatter
is the default charset.
The Locale
for the Formatter
is the default Locale
.
fileName | the filename of the file that is used as the output
destination for the Formatter . The file will be truncated to
zero size if the file exists, or else a new file will be
created. The output of the Formatter is buffered. |
---|
FileNotFoundException | if the filename does not denote a normal and writable file, or if a new file cannot be created, or if any error arises when opening or creating the file. |
---|---|
SecurityException | if there is a SecurityManager in place which denies permission
to write to the file in checkWrite(file.getPath()) .
|
Constructs a Formatter
whose output is written to the specified file.
The Locale
for the Formatter
is the default Locale
.
fileName | the filename of the file that is used as the output
destination for the Formatter . The file will be truncated to
zero size if the file exists, or else a new file will be
created. The output of the Formatter is buffered. |
---|---|
csn | the name of the charset for the Formatter . |
FileNotFoundException | if the filename does not denote a normal and writable file, or if a new file cannot be created, or if any error arises when opening or creating the file. |
---|---|
SecurityException | if there is a SecurityManager in place which denies permission
to write to the file in checkWrite(file.getPath()) . |
UnsupportedEncodingException | if the charset with the specified name is not supported. |
Constructs a Formatter
with the given Locale
and charset,
and whose output is written to the specified file.
fileName | the filename of the file that is used as the output
destination for the Formatter . The file will be truncated to
zero size if the file exists, or else a new file will be
created. The output of the Formatter is buffered. |
---|---|
csn | the name of the charset for the Formatter . |
l | the Locale of the Formatter . If l is null ,
then no localization will be used. |
FileNotFoundException | if the filename does not denote a normal and writable file, or if a new file cannot be created, or if any error arises when opening or creating the file. |
---|---|
SecurityException | if there is a SecurityManager in place which denies permission
to write to the file in checkWrite(file.getPath()) . |
UnsupportedEncodingException | if the charset with the specified name is not supported. |
Constructs a Formatter
whose output is written to the specified File
.
The charset of the Formatter
is the default charset.
The Locale
for the Formatter
is the default Locale
.
file | the File that is used as the output destination for the
Formatter . The File will be truncated to zero size if the File
exists, or else a new File will be created. The output of the
Formatter is buffered. |
---|
FileNotFoundException | if the File is not a normal and writable File , or if a
new File cannot be created, or if any error rises when opening or
creating the File . |
---|---|
SecurityException | if there is a SecurityManager in place which denies permission
to write to the File in checkWrite(file.getPath()) .
|
Constructs a Formatter
with the given charset,
and whose output is written to the specified File
.
The Locale
for the Formatter
is the default Locale
.
file | the File that is used as the output destination for the
Formatter . The File will be truncated to zero size if the File
exists, or else a new File will be created. The output of the
Formatter is buffered. |
---|---|
csn | the name of the charset for the Formatter . |
FileNotFoundException | if the File is not a normal and writable File , or if a
new File cannot be created, or if any error rises when opening or
creating the File . |
---|---|
SecurityException | if there is a SecurityManager in place which denies permission
to write to the File in checkWrite(file.getPath()) . |
UnsupportedEncodingException | if the charset with the specified name is not supported. |
Constructs a Formatter
with the given Locale
and charset,
and whose output is written to the specified File
.
file | the File that is used as the output destination for the
Formatter . The File will be truncated to zero size if the File
exists, or else a new File will be created. The output of the
Formatter is buffered. |
---|---|
csn | the name of the charset for the Formatter . |
l | the Locale of the Formatter . If l is null ,
then no localization will be used. |
FileNotFoundException | if the File is not a normal and writable File , or if a
new File cannot be created, or if any error rises when opening or
creating the File . |
---|---|
SecurityException | if there is a SecurityManager in place which denies permission
to write to the File in checkWrite(file.getPath()) . |
UnsupportedEncodingException | if the charset with the specified name is not supported. |
Constructs a Formatter
whose output is written to the specified OutputStream
.
The charset of the Formatter
is the default charset.
The Locale
for the Formatter
is the default Locale
.
os | the stream to be used as the destination of the Formatter .
|
---|
Constructs a Formatter
with the given charset,
and whose output is written to the specified OutputStream
.
The Locale
for the Formatter
is the default Locale
.
os | the stream to be used as the destination of the Formatter . |
---|---|
csn | the name of the charset for the Formatter . |
UnsupportedEncodingException | if the charset with the specified name is not supported. |
---|
Constructs a Formatter
with the given Locale
and charset,
and whose output is written to the specified OutputStream
.
os | the stream to be used as the destination of the Formatter . |
---|---|
csn | the name of the charset for the Formatter . |
l | the Locale of the Formatter . If l is null ,
then no localization will be used. |
UnsupportedEncodingException | if the charset with the specified name is not supported. |
---|
Constructs a Formatter
whose output is written to the specified PrintStream
.
The charset of the Formatter
is the default charset.
The Locale
for the Formatter
is the default Locale
.
ps | the PrintStream used as destination of the Formatter . If
ps is null , then a NullPointerException will
be raised.
|
---|
Closes the Formatter
. If the output destination is Closeable
,
then the method close()
will be called on that destination.
If the Formatter
has been closed, then calling the this method will have no
effect.
Any method but the ioException()
that is called after the
Formatter
has been closed will raise a FormatterClosedException
.
Flushes the Formatter
. If the output destination is Flushable
,
then the method flush()
will be called on that destination.
FormatterClosedException | if the Formatter has been closed.
|
---|
Writes a formatted string to the output destination of the Formatter
.
l | the Locale used in the method. If locale is
null , then no localization will be applied. This
parameter does not influence the Locale specified during
construction. |
---|---|
format | a format string. |
args | the arguments list used in the format() method. If there are
more arguments than those specified by the format string, then
the additional arguments are ignored. |
Formatter
.IllegalFormatException | if the format string is illegal or incompatible with the arguments, or if fewer arguments are sent than those required by the format string, or any other illegal situation. |
---|---|
FormatterClosedException | if the Formatter has been closed.
|
Writes a formatted string to the output destination of the Formatter
.
format | a format string. |
---|---|
args | the arguments list used in the format() method. If there are
more arguments than those specified by the format string, then
the additional arguments are ignored. |
Formatter
.IllegalFormatException | if the format string is illegal or incompatible with the arguments, or if fewer arguments are sent than those required by the format string, or any other illegal situation. |
---|---|
FormatterClosedException | if the Formatter has been closed.
|
Returns the last IOException
thrown by the Formatter
's output
destination. If the append()
method of the destination does not throw
IOException
s, the ioException()
method will always return null
.
IOException
thrown by the Formatter
's output
destination.
Returns the Locale
of the Formatter
.
Locale
for the Formatter
or null
for no Locale
.FormatterClosedException | if the Formatter has been closed.
|
---|
Returns the output destination of the Formatter
.
Formatter
.FormatterClosedException | if the Formatter has been closed.
|
---|
Returns the content by calling the toString()
method of the output
destination.
toString()
method of the output
destination.FormatterClosedException | if the Formatter has been closed.
|
---|