How to use String.format() in Java?
Solution 1
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.
Solution 2
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.
Related videos on Youtube
Lemmy301
Fifteen years old. I use a MacBook Air laptop. Want to make a game, and know programming to do so (as well as mod others). I know the basics of: C Java Learning C++ at the moment using Beginning C++ Through Game Programming Fourth Edition.
Updated on July 09, 2022Comments
-
Lemmy301 almost 2 years
I am a beginner in Java, and I'm using thenewboston's java tutorials (youtube). At tutorial 36-37 he starts using a String.format(); which he didn't explain in past tutorials. Here is the code for a class he was making:
public class tuna { private int hour; private int minute; private int second; public void setTime(int h, int m, int s){ hour = ((h >= 0 && h < 24) ? h : 0); minute = ((m >= 0 && m < 60) ? m : 0); second = ((s >= 0 && s < 60) ? s : 0); } public String toMilitary(){ return String.format("%02d:%02d:%02d", hour, minute, second); } }
So what he's doing is he's doing some sort of military time class and using String formatting. So what I'm asking is if someone can explain to me how String.format() works and how the formatting above works. Thanks for the help!
-
rgettman about 10 yearsThat method uses the
Formatter
syntax described in theFormatter
javadocs. -
Tim B about 10 yearsPost it as an answer @regettman, I was about to but you already put it here so now I feel like I'd be poaching if I did :P
-