Contents

Scanner에 λŒ€ν•˜μ—¬

   Aug 12, 2023     1 min read

Scanner ν΄λž˜μŠ€μ— λŒ€ν•˜μ—¬ μ•Œμ•„λ³Έ κΈ€μž…λ‹ˆλ‹€.

μ΄λ²ˆμ— μ½”λ”©ν…ŒμŠ€νŠΈλ₯Ό μ€€λΉ„ν•˜λ©° 직무와 맞게 μ‹œν—˜μ„ 보기 μœ„ν•΄ 객체지ν–₯적 코딩을 μœ„ν•œ 언어인 Java둜 λ‹€μ‹œ μ§„ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ§„ν–‰ν•˜λ©° μ•Œκ²Œλœ scanner ν΄λž˜μŠ€μ— λŒ€ν•œ 글을 λ‚¨κΈ°κ³ μž ν•©λ‹ˆλ‹€.

Scanner κ°μ²΄λž€?

객체 생성을 μœ„ν•΄ μ•„λž˜μ˜ μ˜ˆμ‹œμ™€ 같이 μƒμ„±μžμ— System.in의 parameter 값을 μ£Όλ©΄ λ©λ‹ˆλ‹€.

μ˜ˆμ‹œ
Scanner scanner = new Scanner(System.in);

Scanner ν΄λž˜μŠ€μ—μ„œ next(), nextLine()λ©”μ„œλ“œλŠ” String νƒ€μž…μœΌλ‘œ parameter 값을 λ¦¬ν„΄ν•΄μ€λ‹ˆλ‹€.

next()와 nextLine() λ©”μ†Œλ“œμ˜ μ°¨μ΄λŠ” λ¬΄μ—‡μΌκΉŒμš”?

next()와 nextLine() λ©”μ†Œλ“œμ˜ 차이 μ˜ˆμ‹œ

import java.util.Scanner;

public class scannerExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // input: abcde fghij
        String a = sc.next();
        System.out.println(a);
        // result: abcde
        String b = sc.nextLine();
        System.out.println(b);
        // result: abcde fghij
    }
}

예제의 주석을 μ°Έκ³ ν•˜λ©΄ nextLine()κ³Ό next()λ©”μ†Œλ“œμ˜ μ°¨μ΄λŠ” nextLine()λ©”μ†Œλ“œλŠ” κ°œν–‰μ΄ 되기 μ „κΉŒμ§€μ˜ λ¬Έμžμ—΄μ„ λͺ¨λ‘ λ¦¬ν„΄ν•˜κ³ , next() λ©”μ†Œλ“œλŠ” 곡백 μ „κΉŒμ§€ μž…λ ₯받은 λ¬Έμžμ—΄μ„ λ¦¬ν„΄ν•©λ‹ˆλ‹€.

κ²°λ‘ 

곡백이 μžˆλŠ” ν•œ 쀄을 리턴받고 μ‹Άλ‹€λ©΄ nextLine() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜κ³ , ν•œ λ‹¨μ–΄λ§Œ 리턴받고 μ‹ΆμœΌλ©΄ next() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€.