[JAVA] Scanner Class 사용법

프로그래밍

[JAVA] Scanner Class 사용법

sangjuns 2021. 4. 10. 20:47
반응형

Scanner란?

C언어의 scanf함수 기능과 비슷한 자바 클래스이다.

JDK 1.5부터 사용 가능하고 정수 실수 문자열 등을 입력받을 수 있다.

 

Scanner사용법

import java.util.Scanner;

Scanner클래스를 사용하기 위해서는 C언어의 #include <stdio.h>와 같이 

import java.util.Scanner;구문을 맨 위에 추가해주어야 한다.

 

이 과정을 마치면 Scanner 객체를 생성하고 객체에 해당하는 메소드를 사용하는 순서로

키보드의 입력값을 전달받을 수 있다.

 

import java.util.Scanner;

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

 

Scanner Class method

Scanner 클래스는 입력버퍼에서 문자열 형태로 문자를 읽어온다. ex) scanner.next();

문자열  형태가 아닌 정수나 실수형으로 입력버퍼에서 읽어오기 위해서는

nextInt()메소드가 아닌 다른 메소드를 사용해야 한다.

 

import java.util.Scanner

public class test{
	public static void main(String[] args){
    	Scanner scanner=new Scanner(System.in);
        String str=scanner.next();
        System.out.println(str);
        scanner.close();
	}
}

 

대표적으로 많이 사용하는 메소드들이다.

출처 : https://www.artima.com/forums/flat.jsp?forum=121&thread=384567

위의 함수들을 이용하여 입력을 무제한으로 받고 입력 받은 내용을 출력하고 싶다면 아래 코드를 참고 바란다.

import java.util.Scanner;

public class test{
	public static void main(String[] args){
    	Scanner scanner=new Scanner(System.in);
        
        while(scanner.hasNext()){
        	System.out.println(scanner.next());
        }
   		scanner.close();
  	}
}

 

 

 

주의사항

Scanner객체를 사용하고 나서는 무조건 close()메소드를 사용해서 입력버퍼를 종료시켜야 한다.

scanner.close()

 

 

ex)

import java.util.Scanner;

public class test{
	public static void main(String[] args){
    	Scanner scanner=new Scanner(System.in);
        String str=scanner.next();
        System.out.println(str);
        scanner.close();
   	}
}

close()메소드 사용시 주의할 점

 

import java.util.Scanner;

public class test{
	public static void main(String[] args){
    	Scanner scanner=new Scanner(System.in);
        String str=scanner.next();
        System.out.println(str);
        scanner.close();
        
        Scanner scanner1=new Scanner(System.in);
        String str2=scanner1.next();
        System.out.println(str2);
        scanner1.close();
   	}
}

close()메소드를 두 번 중복하여 사용할 시 입력 버퍼와의 연결이 끊긴다.

즉, 소스코드 내에서 close메소드를 한 번만 사용해줘야 한다.

반응형

'프로그래밍' 카테고리의 다른 글

[Network] NAT란  (0) 2021.07.08
[ncurses] linux ui library  (0) 2021.05.16
[JAVA] 접근 지정자  (0) 2021.05.15
[C++] 복사 생성자, 깊은 복사와 얕은 복사  (0) 2021.04.14
[자료구조] 스택과 큐  (0) 2021.04.12