In my previous tutorial on using the Java String format method ("Java sprintf") I showed how to use the format method of the Java String class to format strings and text output. That method works fine in many situations where you use the sprintf function in other languages, such as when you need to either concatenate strings, or print formatted output using something like Log4J.
However, if you just want to print Java formatted text output using the old
System.err.println methods with the printf formatting options you're used to with other languages, the easiest way to do that is to instead use the newer
For instance, here's the usual "Hello, world" example, using these new formatting methods:
System.out.format("%s, %s", "Hello", "world");
While that example hardly makes it look very valuable, here's a better Java printf formatting example that will show you the power of these formatting methods:
System.out.format("The '%s' method died at line %d at '%s'.", methodName, lineNumber, currentTime);
To get the same output without using the new Java format method, you'd have to concatenate (merge) your Strings and variables together, which would be some ugly code, something like this:
System.out.println("The '" + methodName + "' method died at line " + lineNumber + " at '" + currentTime + "'.");
(If you're familiar with the printf or springtf syntax from the C programming language, or similar methods in the Perl or Ruby languages, you'll instantly be familiar with the syntax used with String.format.)
I find the approach using the format method much easier to write, read, and maintain.
So, whenever you're tempted to use those old
System.err.println methods, and you need some nice, formatted output, consider using the newer
System.err.format methods instead.
If you'd like to see much more information about formatting options you can use with the Java
System.out.format() method, check out my printf formatting examples (cheat sheet) page. It's full of
printf formatting options that you can use in the Java language (and other languages, like C, Perl, and Ruby).