Er stødt på String.format("%02d:%02d:%02d", hour, minute, second), men hva...

Tags:    java

Hej! Sidder og lærer java, da jeg støder på

return String.format("%02d:%02d:%02d", hour, minute, second);

Hvad er "format"? Og hvad betyder "%02d:"

Gimme some help please!

Ps. Det var i forbindelse med at lave militærtid:D



8 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 11 karma
Sorter efter stemmer Sorter efter dato
Format bruges meget i andre sprog, men er ikke set såå meget i PHP, men det er en anden måde, at sammensætte strings og variabler end .

Med %d fortæller du, at til string format, at her vil du gerne indsætte en digit altså et tal. Der ud over kan man med %d fortælle, hvordan det skal skrives. F.eks. %02d der fortæller, at tallet altid skal skrives med minimum to tal. Så hvis du skriver 1 kommer der til, at stå 01 skriver du 11 bliver et 11.

Det vil sige, at den string format udskriver timer, minutter, sekunder... Så det står f.eks. 04:41:06




Indlæg senest redigeret d. 28.03.2012 21:01 af Bruger #17081
Er det ikke fordi String.format returnerer den nye formaterede string, og det er den du bør udskrive.
a ændres jo ikke

Fold kodeboks ind/udJava kode 




Indlæg senest redigeret d. 28.03.2012 21:41 af Bruger #16797
Den skal vel heller ikke return, men
system.out.println(String.format("%02d",a));



Format bruges meget i andre sprog, men er ikke set såå meget i andre sprog, men det er en anden måde, at sammensætte strings og variabler end .

Med %d fortæller du, at til string format, at her vil du gerne indsætte en digit altså et tal. Der ud over kan man med %d fortælle, hvordan det skal skrives. F.eks. %02d der fortæller, at tallet altid skal skrives med minimum to tal. Så hvis du skriver 1 kommer der til, at stå 01 skriver du 11 bliver et 11.

Det vil sige, at den string format udskriver timer, minutter, sekunder... Så det står f.eks. 04:41:06


Mange tak! :D

EDIT

int a = 1;

String.format("%03d", a);

System.out.println(a);

Når jeg skriver det der, printer den bare 1 ud?



Indlæg senest redigeret d. 28.03.2012 21:15 af Bruger #16945
Er det ikke fordi String.format returnerer den nye formaterede string, og det er den du bør udskrive.
a ændres jo ikke


Hæhæh, lagde også selv mærke til den fejl, og prøvede at rette den.

int a = 11;
int b = 17;
int c = 424;

return String.format("%02d:%02d:%02d", a, b, c);

Men der sker absolut ingenting hvis jeg eksekvere..



Med %d fortæller du, at til string format, at her vil du gerne indsætte en digit altså et tal.


'%d' står ikke for digit, men for decimal...altså formatér her et decimalt tal. Det kunne også have været '%x' som i hex med små bogstaver, eller '%X' som i hex med store bogstaver, eller '%f' som i floating point.



Er det ikke fordi String.format returnerer den nye formaterede string, og det er den du bør udskrive.
a ændres jo ikke


Hæhæh, lagde også selv mærke til den fejl, og prøvede at rette den.

int a = 11;
int b = 17;
int c = 424;

return String.format("%02d:%02d:%02d", a, b, c);

Men der sker absolut ingenting hvis jeg eksekvere..


Men i de her tilfælde bruger du jo også to-cifrede tal, og fortæller .format at resultatet skal fylde to cifre, derfor kommer der ingen 0'er på, der er ikke noget at "fylde ud"

Edit: to og tre-cifrede tal, selvfølgelig, men samme pointe



Indlæg senest redigeret d. 28.03.2012 21:57 af Bruger #16797
Med %d fortæller du, at til string format, at her vil du gerne indsætte en digit altså et tal.


'%d' står ikke for digit, men for decimal...altså formatér her et decimalt tal. Det kunne også have været '%x' som i hex med små bogstaver, eller '%X' som i hex med store bogstaver, eller '%f' som i floating point.

Ja det er selvfølgelig rigtigt ... Men har også bare skrevet hurtigt fra min mobil. Så fik det hvis ikke helt rigtigt



t