[Java] 자바 스캐너(Scanner)에 대해
반응형

Scanner Class

읽은 바이트를 Char, Integer, Float, boolean, String 등 다양한 타입으로 변환하여 리턴하는 Class

공백과 개행(' ', '\t', '\r', '\n' 등)을 기준으로 읽는다.

 

* 기본 선언 코드

import java.util.Scanner;

public class className {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        //코드 작성...

        sc.close(); //꼭 닫아주기!
    }
}

- java.util.Scanner를 import하면 사용할 수 있다.

- System.in을 사용하여 키보드로 입력한 값을 읽고 설정한 타입으로 변환하여 리턴한다.

- 스캐너를 다썼다면 .close()로 꼭 닫아주기!

더보기

...추가 설명...

 

import란?

- 현재 작성하고 있는 소스파일에 다른 클래스를 불러온다.

- Java를 설치하면 쓸 수 있는 기본 클래스들이 엄청 많다!

 

System.in 이란?

- 자바의 표준 입력 스트림

- 입력되는 값을 바이트로 리턴

 

 

Scanner 주요 Method

자료형 메소드 역할
String next() 문자열로 리턴
byte nextByte() byte 타입으로 리턴
short nextShort() short 타입으로 리턴
int nextInt() int 타입으로 리턴
long nextLong() long 타입으로 리턴
float nextFloat() float 타입으로 리턴
double nextDouble() double 타입으로 리턴
String nextLine() ' \n '을 포함하는 한 라인을 읽고 ' \n '을 버린 나머지만 리턴
void close() 스캐너 사용 종료
boolean hasNext() 현재 입력된 토큰이 있으면 true 반환, 없을 시 새로운 입력이 들어올 때까지 기다리기
Ctrl+z가 입력되면 입력 끝이란 뜻이므로 false 리턴

 


Scanner 사용 예제

<코드>

import java.util.Scanner;

public class Star {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //공백으로 구분해서 받아올 수 있다!!
        int a = sc.nextInt();//Int형으로 return받기
        int b = sc.nextInt();

        System.out.println(a);
        System.out.println(b);
        
        sc.close();
    }
}

<실행 결과>

- 입력할 때는 한줄에 공백으로 구분하여 입력한다.

- nextInt()로 하나 씩 받아온다.

 

* next()와 nextLine()의 차이

- next() : 공백과 개행을 기준으로 읽음!

import java.util.Scanner;

public class Star {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String a = sc.next();//공백, 개행 기준으로 하나 읽어오기
        System.out.println(a);

        sc.close();
    }
}

 

- nextLine() : 공백은 그대로 두고 개행을 기준으로 읽음!

import java.util.Scanner;

public class Star {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String a = sc.nextLine();//개행 기준으로 하나 읽어오기
        System.out.println(a);

        sc.close();
    }
}

반응형