How to format strings in Java

Take a look at String.format. Note, however, that it takes format specifiers similar to those of C’s printf family of functions — for example:

String.format("Hello %s, %d", "world", 42);

Would return “Hello world, 42”. You may find this helpful when learning about the format specifiers. Andy Thomas-Cramer was kind enough to leave this link in a comment below, which appears to point to the official spec. The most commonly used ones are:

  • %s – insert a string
  • %d – insert a signed integer (decimal)
  • %f – insert a real number, standard notation

This is radically different from C#, which uses positional references with an optional format specifier. That means that you can’t do things like:

String.format("The {0} is repeated again: {0}", "word");

without actually repeating the parameter passed to printf/format. (see The Scrum Meister’s comment below)


If you just want to print the result directly, you may find System.out.printf (PrintStream.printf) to your liking.

Leave a Comment