Printf-Style Formatting
A standard feature that Java adopted from the C language is printf-style string formatting. printf-style formatting utilizes special format
strings embedded into text to tell the formatting engine where to place
arguments and give detailed specification about conversions, layout, and
alignment. The printf formatting
methods also make use of variable-length argument lists, which makes
working with them much easier. Here is a quick example of printf-formatted output:
System.out.printf("My name is %s and I am %d years old\n",name,age);
The printf formatting draws its
name from the C language printf()
function, so if you’ve done any C programming, this will look familiar.
Java has extended the concept, adding some additional type safety and
convenience features. Although Java has had some text formatting
capabilities in the past (we’ll discuss the java.text package and MessageFormat later), printf formatting was not really feasible until
variable-length argument lists and autoboxing of primitive types were
added in Java 5.0. (We mention this to explain why these similar APIs both
exist in Java.)
Formatter
The primary new tool in our text formatting arsenal is the
java.util.Formatter
class and its format() method.
Several convenience methods can hide the Formatter object from you and you may not need
to create a Formatter directly.
First, the static String.format()
method can be used to format a String
with arguments (like the C language sprintf() method):