Have a look at java.util.Formatter.
String.format() provides a convenient wrapper.
For example (modified from an example on the link):
String s = String.format("e = %+10.4f", Math.E);
It goes beyond C's ?printf formats. For example, it supports an optional locale, and format symbols can be associated with an argument by explicit index rather than implicit.
Edit: Fixed the link above.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…