It works same as printf() of C.
%s for String
%d for int
%f for float
ahead
String.format("%02d", 8)
OUTPUT: 08
String.format("%02d", 10)
OUTPUT: 10
String.format("%04d", 10)
OUTPUT: 0010
so basically, it will pad number of 0's ahead of the expression, variable or primitive type given as the second argument, the 0's will be padded in such a way that all digits satisfies the first argument of format method of String API.
Answer from Hiren on Stack OverflowHow to use String.format() in Java? - Stack Overflow
How to format strings in Java - Stack Overflow
Help with String.format
s-Strings in Java?
Videos
It works same as printf() of C.
%s for String
%d for int
%f for float
ahead
String.format("%02d", 8)
OUTPUT: 08
String.format("%02d", 10)
OUTPUT: 10
String.format("%04d", 10)
OUTPUT: 0010
so basically, it will pad number of 0's ahead of the expression, variable or primitive type given as the second argument, the 0's will be padded in such a way that all digits satisfies the first argument of format method of String API.
It just takes the variables hour, minute, and second and bring it the the format 05:23:42. Maybe another example would be this:
String s = String.format("Hello %s answered your question", "placeofm");
When you print the string to show it in the console it would look like this
System.out.println(s);
Hello placeofm answered your question
The placeholder %02d is for a decimal number with two digits. %s is for a String like my name in the sample above. If you want to learn Java you have to read the docs. Here it is for the String class. You can find the format method with a nice explanation. To read this docs is really important not even 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". The "format string" link points to the complete official spec, but for simple cases, this much shorter documentation may be helpful for an introduction to format specifiers even though it's outdated and about Lava. 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.
In addition to String.format, also take a look java.text.MessageFormat. The format less terse and a bit closer to the C# example you've provided and you can use it for parsing as well.
For example:
int someNumber = 42;
String someString = "foobar";
Object[] args = {new Long(someNumber), someString};
MessageFormat fmt = new MessageFormat("String is \"{1}\", number is {0}.");
System.out.println(fmt.format(args));
A nicer example takes advantage of the varargs and autoboxing improvements in Java 1.5 and turns the above into a one-liner:
MessageFormat.format("String is \"{1}\", number is {0}.", 42, "foobar");
MessageFormat is a little bit nicer for doing i18nized plurals with the choice modifier. To specify a message that correctly uses the singular form when a variable is 1 and plural otherwise, you can do something like this:
String formatString = "there were {0} {0,choice,0#objects|1#object|1<objects}";
MessageFormat fmt = new MessageFormat(formatString);
fmt.format(new Object[] { new Long(numberOfObjects) });