Java TIL - 250419

๊นŒ๋ฏธ์–ธ๋‹ˆยท2025๋…„ 4์›” 19์ผ

Java ์กฐ์ง€๊ธฐ

๋ชฉ๋ก ๋ณด๊ธฐ
2/7
post-thumbnail

๐Ÿ“Œ printf ํฌ๋งท ๋ฌธ์ž์—ด

%d : ์ •์ˆ˜ ์ถœ๋ ฅ
%nd : ์ •์ˆ˜ n์นธ ํ™•๋ณด, ์šฐ์ธก ์ •๋ ฌ
%-nd : ์ •์ˆ˜ n์นธ ํ™•๋ณด, ์ขŒ์ธก ์ •๋ ฌ
%0nd : ์ •์ˆ˜ n์นธ ํ™•๋ณด, ๋นˆ์นธ์€ 0์œผ๋กœ ์ฑ„์›€

int value = 123;

// %d : ์ •์ˆ˜ ์ถœ๋ ฅ
System.out.printf("์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ:%d์›\n", value);

// %6d : ์ •์ˆ˜ 6์นธ ํ™•๋ณด, ์šฐ์ธก ์ •๋ ฌ
System.out.printf("์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ:%6d์›\n", value);

// %-6d : ์ •์ˆ˜ 6์นธ ํ™•๋ณด, ์ขŒ์ธก ์ •๋ ฌ
System.out.printf("์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ:%-6d์›\n", value);

// %06d : ์ •์ˆ˜ 6์นธ ํ™•๋ณด, ๋นˆ์นธ์€ 0์œผ๋กœ ์ฑ„์›€
System.out.printf("์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ:%06d์›\n", value);     // ์ •์ˆ˜ 6์นธ ํ™•๋ณด, ๋นˆ์นธ์€ 0์œผ๋กœ ์ฑ„์›€

%.nf : ์†Œ์ˆ˜์  ๋‘˜์จฐ์ž๋ฆฌ๊นŒ์ง€ ์‹ค์ˆ˜ ์ถœ๋ ฅ

double area = 3.14159 * 10 * 10;

// %.2f : ์†Œ์ˆ˜์  ๋‘˜์จฐ์ž๋ฆฌ๊นŒ์ง€ ์‹ค์ˆ˜ ์ถœ๋ ฅ
System.out.printf("๋ฐ˜์ง€๋ฆ„์ด %d์ธ ์›์˜ ๋„“์ด:%.2f\n", 10, area);

%6s : ๋ฌธ์ž์—ด ์šฐ์ธก ์ •๋ ฌ
%-6s : ๋ฌธ์ž์—ด ์ขŒ์ธก ์ •๋ ฌ

String name = "ํ™๊ธธ๋™";
String job = "๋„์ ";

System.out.printf("%3d|%-6s|%6s\n", 1, name, job);

๐Ÿ“Œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฌธ์žฅ

์•„๋ž˜๋Š” java.util ํŒจํ‚ค์ง€์˜ Scanner ํด๋ž˜์Šค๋ฅผ import ํ•ด์™€์„œ, ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” Scanner ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ๋Š” ScannerExample ํด๋ž˜์Šค.

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
    }
}

์—ฌ๊ธฐ์„œ

 Scanner scanner = new Scanner(System.in);

์ด ๋ฌธ์žฅ์˜

1๏ธโƒฃ ์ฒซ Scanner
2๏ธโƒฃ new ๋‹ค์Œ์œผ๋กœ ์˜ค๋Š” Scanner

์˜ ์ฐจ์ด๊ฐ€ ๊ถ๊ธˆํ•ด์ง

๋ผ๊ณ  ํ•œ๋‹ค.

์ฆ‰,

1๏ธโƒฃ์€ ์ž๋ฃŒํ˜• ์œผ๋กœ, ๋ณ€์ˆ˜ scanner๊ฐ€ ์–ด๋–ค ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„
2๏ธโƒฃ๋Š” new ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์˜๋ฏธ

๋ผ๊ณ  ํ•œ๋‹ค. ๋น„์œ  ์ข‹์Œ

๋‹ค๋ฅธ ์˜ˆ๋ฅผ ์‚ดํ”ผ๋ฉด,

โœ” ๋ฌธ์ž์—ด ์ž…๋ ฅ ํด๋ž˜์Šค
String str = new String("hello");

โœ” ๋ฐฐ์—ด ์„ ์–ธ
int[] arr = new int[5];

โœ” ArrayList ์‚ฌ์šฉ
ArrayList<String> list = new ArrayList<>();

๊ณตํ†ต ๊ตฌ์กฐ๋Š” ์ด๊ฒƒ

ํด๋ž˜์Šค์ด๋ฆ„ ๋ณ€์ˆ˜์ด๋ฆ„ = new ํด๋ž˜์Šค์ด๋ฆ„(์ƒ์„ฑ์ž ๋งค๊ฐœ๋ณ€์ˆ˜);

๐Ÿ“Œ java.util์˜ ํด๋ž˜์Šค - Scanner

java.util.Scanner
์ฝ˜์†”, ํŒŒ์ผ, ๋ฌธ์ž์—ด ๋“ฑ ๋‹ค์–‘ํ•œ ์ž…๋ ฅ ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ.
python์˜ input()์ด๋ž‘ ๋น„์Šทํ•œ๋“ฏ

์ฃผ์š” ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ์„ค๋ช…์˜ˆ์‹œ
nextLine()ํ•œ ์ค„ ์ „์ฒด ์ž…๋ ฅ"hello world"
next()๊ณต๋ฐฑ ์ „๊นŒ์ง€ ํ•œ ๋‹จ์–ด"hello"
nextInt()์ •์ˆ˜ ์ž…๋ ฅ42
nextDouble()์‹ค์ˆ˜ ์ž…๋ ฅ3.14

๐Ÿ“Œ java.util์˜ ํด๋ž˜์Šค - Arrays

java.util.Arrays
๋ฐฐ์—ด์„ ์‰ฝ๊ฒŒ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค.
๋ฐฐ์—ด ์ •๋ ฌ, ๋ณต์‚ฌ, ๋น„๊ต, ์ถœ๋ ฅ ๋“ฑ์„ ์ง€์›

์ฃผ์š” ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ์„ค๋ช…์˜ˆ์‹œ
Arrays.toString(arr)๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅ[1, 2, 3]
Arrays.sort(arr)๋ฐฐ์—ด ์ •๋ ฌ์˜ค๋ฆ„์ฐจ์ˆœ
Arrays.copyOf(arr, n)๋ฐฐ์—ด ๋ณต์‚ฌ (ํฌ๊ธฐ n์œผ๋กœ)int[] b = Arrays.copyOf(a, 3);
Arrays.equals(arr1, arr2)๋‘ ๋ฐฐ์—ด์ด ๊ฐ™์€์ง€ ๋น„๊ตtrue / false
Arrays.fill(arr, val)๋ชจ๋“  ์š”์†Œ๋ฅผ ํŠน์ • ๊ฐ’์œผ๋กœ ์ฑ„์›€Arrays.fill(arr, 0);

๐Ÿ“Œ java.util์˜ ํด๋ž˜์Šค - Random

java.util.Random
๋ฌด์ž‘์œ„ ๊ฐ’ ์ƒ์„ฑ์— ์‚ฌ์šฉ
์ •์ˆ˜, ์‹ค์ˆ˜, boolean ๋“ฑ ๋‹ค์–‘ํ•œ ํƒ€์ž… ์ง€์›

์ฃผ์š” ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ๋ฐ˜ํ™˜๊ฐ’์˜ˆ์‹œ
nextInt()int์ „์ฒด int ๋ฒ”์œ„ ๋‚ด์—์„œ ๋žœ๋ค ๊ฐ’
nextInt(n)int0 ์ด์ƒ n ๋ฏธ๋งŒ ์ •์ˆ˜
nextDouble()double0.0 ์ด์ƒ 1.0 ๋ฏธ๋งŒ์˜ ์‹ค์ˆ˜
nextBoolean()booleantrue ๋˜๋Š” false
nextLong()long์ „์ฒด long ๋ฒ”์œ„ ๋žœ๋ค ๊ฐ’
nextFloat()float0.0 ์ด์ƒ 1.0 ๋ฏธ๋งŒ ์‹ค์ˆ˜

๐Ÿ“Œ System.in

System.in
java ํ‘œ์ค€ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ
-> ๋ณดํ†ต ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ์˜๋ฏธ


๐Ÿ“Œ switch ๋ฌธ

switch ๋ฌธ
์กฐ๊ฑด๊ฐ’์ด ๋ช…ํ™•ํ•˜๊ฒŒ ๋”ฑ ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ (๊ฐ’์ด ์ •ํ•ด์ง„ ๊ฒฝ์šฐ) ์‚ฌ์šฉํ•˜๋Š” ์กฐ๊ฑด ๋ถ„๊ธฐ๋ฌธ

cf) if ๋ฌธ๋ณด๋‹ค ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ , ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ ํšจ์œจ์ 

switch (๊ฐ’) {
    case ๊ฐ’1:
        // ๊ฐ’์ด ๊ฐ’1์ผ ๋•Œ ์‹คํ–‰
        break;
    case ๊ฐ’2:
        // ๊ฐ’์ด ๊ฐ’2์ผ ๋•Œ ์‹คํ–‰
        break;
    ...
    default:
        // ์œ„ ๋ชจ๋“  case์— ํ•ด๋‹น๋˜์ง€ ์•Š์„ ๋•Œ ์‹คํ–‰
}`

์˜ˆ์ œ

int score = 90;

switch (score) {
    case 100:
    case 99:
    case 98:
    case 97:
    case 96:
    case 95:
    case 94:
    case 93:
    case 92:
    case 91:
    case 90:
        System.out.println("A ๋“ฑ๊ธ‰");
        break;
    case 89:
    case 88:
    case 87:
    case 86:
    case 85:
        System.out.println("B ๋“ฑ๊ธ‰");
        break;
    default:
        System.out.println("C ๋“ฑ๊ธ‰ ์ดํ•˜");
}

-> ์—ฌ๋Ÿฌ ์ผ€์ด์Šค๊ฐ€ ๊ฐ™์€ ์ฒ˜๋ฆฌ ๋กœ์ง ๊ณต์œ  ๊ฐ€๋Šฅ

โš  ์ฃผ์˜ - fall through ํ˜„์ƒ
break ์—†์œผ๋ฉด ๋‹ค์Œ case๊นŒ์ง€ ์ฒ˜๋ฆฌํ•จ

์˜ˆ์ œ

int num = 2;

switch (num) {
    case 1:
        System.out.println("1์ž…๋‹ˆ๋‹ค.");
    case 2:
        System.out.println("2์ž…๋‹ˆ๋‹ค.");
    case 3:
        System.out.println("3์ž…๋‹ˆ๋‹ค.");
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ

2์ž…๋‹ˆ๋‹ค.
3์ž…๋‹ˆ๋‹ค.

-> case 2์— ํ•ด๋‹น๋˜์ง€๋งŒ, break๊ฐ€ ์—†์–ด์„œ case 3๋„ ์‹คํ–‰๋จ

0๊ฐœ์˜ ๋Œ“๊ธ€