Bibi's DevLog ๐Ÿค“๐ŸŽ

[Java] .printf() ์‚ฌ์šฉ๋ฒ• ์ตํžˆ๊ธฐ - ์ฝ˜์†”์ฐฝ ์ถœ๋ ฅ ์™ผ์ชฝ์ •๋ ฌ, ์˜ค๋ฅธ์ชฝ์ •๋ ฌ, ๊ฐ„๊ฒฉ ๋งž์ถ”๊ธฐ ๋ณธ๋ฌธ

๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ/Java ์ž๋ฐ”

[Java] .printf() ์‚ฌ์šฉ๋ฒ• ์ตํžˆ๊ธฐ - ์ฝ˜์†”์ฐฝ ์ถœ๋ ฅ ์™ผ์ชฝ์ •๋ ฌ, ์˜ค๋ฅธ์ชฝ์ •๋ ฌ, ๊ฐ„๊ฒฉ ๋งž์ถ”๊ธฐ

๋น„๋น„ bibi 2020. 11. 19. 17:34

keep-cool.tistory.com/15
https://althathatha.tistory.com/12
https://three-pleasure.tistory.com/251
์„ธ ๋ถ„์˜ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์—ฌ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค๐Ÿ™‡‍โ™€๏ธ

System.out.printf() ์‚ฌ์šฉ๋ฒ• ์ตํžˆ๊ธฐ

.print();, .println(); ์ด ์•„๋‹Œ .printf();๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์˜จ ๊ฒƒ ๊ฐ™๋‹ค.

์šฐ์„  ๊ฐ€๋กœ, ์„ธ๋กœ๋ฅผ ๋„˜์–ด ์ฝ˜์†” ์ฐฝ์— ์ข€ ๋” ์˜ˆ์˜๊ฒŒ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์–ด์„œ,
๊ทธ๋ฆฌ๊ณ  .printf();์˜ ์ง€์‹œ์ž๋ฅผ ํ™œ์šฉํ•ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ€๋ณ€์ ์ธ ๋‚ด์šฉ๋“ค์„ ํŽธํ•˜๊ฒŒ ๋งŽ์ด ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.
( + println()์ฒ˜๋Ÿผ "" ์™€ + ๋กœ ์ด์–ด๋ถ™์ด์ง€ ์•Š์•„๋„ ๋œ๋‹ค!)

 


 

System.out.printf("์ถœ๋ ฅ ์„œ์‹", ์ถœ๋ ฅํ•  ๋‚ด์šฉ);
: print format์˜ ์•ฝ์ž๋กœ, ์–ด๋–ค format(์„œ์‹, ํ‹€)๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
: '์ง€์‹œ์ž'๋ฅผ ํ†ตํ•ด ์–ด๋–ค ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์—ฌ๋Ÿฌ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค.

- "์ถœ๋ ฅ ์„œ์‹" : ์ง€์‹œ์ž์™€ ๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. ์ง€์‹œ์ž๋ฅผ ์ œ์™ธํ•œ ๋ฌธ์ž๋Š” ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋œ๋‹ค.
์ง€์‹œ์ž์˜ ์‚ฌ์šฉ๋ฒ•์€ ์•„๋ž˜์— ๋”ฐ๋กœ ์„ค๋ช….

- ์ถœ๋ ฅํ•  ๋‚ด์šฉ : "์ถœ๋ ฅ ์„œ์‹"์˜ ์ง€์‹œ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ณ€์ˆ˜๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
โ€ป ์ง€์‹œ์ž์˜ ๊ฐฏ์ˆ˜, ์ˆœ์„œ = ๋ณ€์ˆ˜์˜ ๊ฐฏ์ˆ˜, ์ˆœ์„œ ์—ฌ์•ผ ํ•œ๋‹ค.

-
printf()์€ println()์ฒ˜๋Ÿผ ์ž๋™์ค„๋ฐ”๊ฟˆ์ด ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ค„๋ฐ”๊ฟˆ์„ ํ•˜๋ ค๋ฉด "์ถœ๋ ฅ ์„œ์‹"์—์„œ ์›ํ•˜๋Š” ์œ„์น˜์— %n ์ง€์‹œ์ž๋ฅผ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค.

  • ์ง€์‹œ์ž(directive)

    • ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ง€์‹œ์ž

      • %d (decimal = 10์ง„์ˆ˜ ์ •์ˆ˜ํ˜•์œผ๋กœ ์ถœ๋ ฅ)

      • %f (float = ์†Œ์ˆ˜์  ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ)

      • %s (string = ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ)

      • %c (char = ๋ฌธ์ž ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ)

      • %n (์ค„๋ฐ”๊ฟˆ ์ง€์‹œ์ž = ์—”ํ„ฐ. ๊ฐœํ–‰)

      • %b (boolean = boolean ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ)

    • ์ง€์‹œ์ž์˜ ์‚ฌ์šฉํ˜•ํƒœ

      • ๊ฐ ์ง€์‹œ์ž์˜ % ๋’ค์— ์ˆซ์ž/๊ธฐํ˜ธ๋ฅผ ๋„ฃ์–ด ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

      • ์ˆซ์ž : (์˜ค๋ฅธ์ชฝ ์ •๋ ฌ) ์ถœ๋ ฅํ•  ์ตœ๋Œ€ ์ž๋ฆฟ์ˆ˜๋ฅผ ์ง€์ •ํ•จ.
        • ์˜ˆ) %3d : ์ตœ๋Œ€ 3์ž๋ฆฌ์˜ ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋˜, ๋‹ค ์ถœ๋ ฅํ•˜๊ณ ๋„ ์ž๋ฆฌ๊ฐ€ ๋‚จ์œผ๋ฉด ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์šฐ๊ณ  ์˜ค๋ฅธ์ชฝ ์ •๋ ฌํ•ด ์ถœ๋ ฅ.
      • 0 : (์ „์ฒด ์ž๋ฆฟ์ˆ˜๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ) ์ถœ๋ ฅํ•˜๊ณ  ๋‚จ๋Š” ์ž๋ฆฌ๋ฅผ ๊ณต๋ฐฑ ๋Œ€์‹  0์œผ๋กœ ์ถœ๋ ฅ.
        • ์˜ˆ) %03d : ์ตœ๋Œ€ 3์ž๋ฆฌ์˜ ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋˜, ๋‹ค ์ถœ๋ ฅํ•˜๊ณ  ๋‚จ๋Š” ์ž๋ฆฌ๋Š” 0์œผ๋กœ ์ฑ„์šฐ๊ณ  ์˜ค๋ฅธ์ชฝ ์ •๋ ฌํ•ด ์ถœ๋ ฅ.
      • - : (์™ผ์ชฝ ์ •๋ ฌ) (์ „์ฒด ์ž๋ฆฟ์ˆ˜๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ) ์ถœ๋ ฅ ํ›„ ๋‚จ๋Š” ์ž๋ฆฌ๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์šฐ๊ณ  ์™ผ์ชฝ์ •๋ ฌํ•ด ์ถœ๋ ฅ.
        • ์˜ˆ) %-4s : ์ตœ๋Œ€ 4์ž๋ฆฌ์˜ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋˜, ๋‹ค ์ถœ๋ ฅํ•˜๊ณ  ๋‚จ๋Š” ์ž๋ฆฌ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์šฐ๊ณ  ์™ผ์ชฝ์ •๋ ฌํ•ด ์ถœ๋ ฅ.

 


 

์•„๋ž˜ ์˜ˆ์ œ์˜ ์ฝ”๋“œ์™€ ์ถœ๋ ฅํ˜•ํƒœ๋ฅผ ๋ณด๋ฉฐ,
์ง€์‹œ์ž๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ป๊ฒŒ ์ถœ๋ ฅํ•˜๋Š”์ง€ ๊ฐ์„ ์žก์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

์ถœ๋ ฅํ˜•ํƒœ

 

์ „์ฒด ์ฝ”๋“œ

public class PrintfTest {
    public static void main(String[] args) {

        System.out.print("   |");

        for (int i = 1; i <= 9; i++) {
            System.out.printf("%3d", i);
        }

        System.out.println("\n---+---------------------------");

        for (int i = 1; i <= 9; i++) {
            System.out.printf("%2d |", i);
            for (int j = 1; j <= 9; j++)
                System.out.printf("%3d", i * j);
            System.out.println();
        }

    }
}