๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปStudy/Java

String.format๊ณผ System.out.printf

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

int n = 2;
int a = 3;
int b = 4;
int c = 5;

System.out.printf(String.format("%%2d, %%%dd, %%d", n), a, b, c);

 

 

๋ณต์žกํ•ด ๋ณด์ผ ์ˆ˜๋ก ์ฐจ๊ทผ์ฐจ๊ทผ ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ ์•ˆ์ชฝ์— ์žˆ๋Š” String.format("%%2d, %%%dd, %%d", n)์„ ๋จผ์ € ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Java์—์„œ ์ œ๊ณตํ•˜๋Š” String ํด๋ž˜์Šค์˜ format ๋ฉ”์†Œ๋“œ๋Š” ์ง€์ •๋œ ์œ„์น˜์— ๊ฐ’์„ ๋Œ€์ž…ํ•œ ๊ฒƒ์„ ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค. ํ˜•์‹์€ C๋‚˜ Java์˜ printf์™€ ๋™์ผํ•˜๊ฒŒ %d, %s, %f ๋“ฑ์˜ ์„œ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, String.format("%3d, %2d", 10, 20)์˜ ๊ฒฝ์šฐ ์„ธ ์นธ์„ ํ™•๋ณดํ•˜๊ณ  ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ 10, ๋‘ ์นธ์„ ํ™•๋ณดํ•˜๊ณ  ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ 20์„ ์ž…๋ ฅํ•˜์—ฌ  10, 20์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

%%๋Š” format์—์„œ '%'๋ผ๋Š” ๋ฌธ์ž๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. format์—์„œ '%'๋ผ๋Š” ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด %% ์ด๋ ‡๊ฒŒ ๋‘ ๋ฒˆ ์“ฐ๋ฉด ๋œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

 

String.format("%%2d, %%%dd, %%d", n) ๋‹ค์‹œ ์ด ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

%%๋ฅผ ์ „๋ถ€ %๋กœ ์น˜ํ™˜ํ•ด๋ณด๋ฉด, %2d, %%dd, %d๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ€์šด๋ฐ %d์ž๋ฆฌ(๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œ)์— n๊ฐ’์ธ 2๋ฅผ ๋Œ€์ž…ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด %2d, %2d, %d๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

String.format("%%2d, %%%dd, %%d", n) <<==>> "%2d, %2d, %d" (String ํ˜•์‹์ด ๋จ)

 

์—ฌ๊ธฐ๊นŒ์ง€ ์™”์œผ๋ฉด ์ด ๋’ค๋กœ๋Š” ์‰ฝ์Šต๋‹ˆ๋‹ค.

System.out.printf("%2d, %2d, %d", a, b, c); ๊ฐ€ ๋˜์—ˆ์œผ๋‹ˆ ํ•ด๋‹น ์ž๋ฆฌ์— ์ˆœ์„œ๋Œ€๋กœ a๊ฐ’, b๊ฐ’, c๊ฐ’์„ ๋Œ€์ž…ํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์‹คํ–‰ ๊ฒฐ๊ณผ

 

์„ธ ์ค„ ์š”์•ฝ!

1. String.format์€ ํ•ด๋‹น ์„œ์‹์— ๋งž๊ฒŒ ๋Œ€์ž…ํ•˜๋ฉฐ String ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

2. System.out.printf๋Š” C์–ธ์–ด์™€ ๋™์ผํ•œ ์„œ์‹์„ ์‚ฌ์šฉํ•ด ์ถœ๋ ฅํ•œ๋‹ค.

3. %%๋Š” format์—์„œ '%'๋ฅผ ์˜๋ฏธํ•œ๋‹ค.