Java/JAVA

[JAVA] Scanner

담크 2021. 9. 15. 23:41

오늘은 자바에서 사용자에게 값을 입력받을 때 사용하는 Scanner에 대해 공부해보도록 하겠습니다.

 

Scanner는 자바의 '클래스' 중 하나로

Scanner 변수명 = new Scanner(System.in);

과 같은 형태로 사용을 합니다.

 

클래스이기 때문에 Scanner를 사용하려면

import java.util.Scanner;

를 임포트 해줘야만 사용이 가능합니다.

 

그다음으로는 간단한 코드를 하나 작성해서 살펴보겠습니다.

import java.util.Scanner;

public class Test {
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("숫자를 입력해주세요 : ");
		int a = sc.nextInt();
		System.out.println("a의 값은 : " + a);
        
        sc.close();
	}

}

결과값 입니다.

우선 System.in은 키보드의 입력값을 읽고 원하는 타입으로 변환시켜서 리턴해줍니다.

sc.nextInt( )는 Scanner가 객체이기 때문에 sc.000으로 Scanner의 메서드를 사용 가능하게 해 주는데 nextInt( )의 경우 int타입으로 리턴 시켜줍니다.

**스캐너의 주요 메서드는 아래와 같습니다.

next( ) 다음 토큰을 문자열로 리턴한다.
nextByte( ) 다음 토큰을 byte 타입으로 리턴한다.
nextShort( ) 다음 토큰을 short 타입으로 리턴한다.
nextInt( ) 다음 토큰을 int 타입으로 리턴한다.
nextLong( ) 다음 토큰을 long 타입으로 리턴한다.
nextFloat( ) 다음 토큰을 float 타입으로 리턴한다.
nextDouble( ) 다음 토큰을 double 타입으로 리턴한다.
nextLine( ) 공백을 포함하는 한 라인을 읽고 공백을 버린 나머지만 리턴 

 

sc.close( )는 사용했던 Scanner의 사용을 종료시켜주는 역할을 합니다.

close( )의 경우 없다고 에러가 나진 않지만 그래도 닫아주는 것을 습관화해주시는 게 좋습니다.

 

 

** next와 nextLine의 차이점

import java.util.Scanner;

public class Test {
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("문자1 입력해주세요 : ");
		String a = sc.next();
		System.out.println("문자2 입력해주세요 : ");
		String s = sc.nextLine();
		
		System.out.println("a의 값은 : " + a);
		System.out.println("s의 값은 : " + s);
	}

}

aaa를 하고 바로 Enter를 할 경우

aaa (공백) bbb를 할 경우

 

'Java > JAVA' 카테고리의 다른 글

[JAVA] String pool  (0) 2021.09.18
[JAVA] 자바의 메소드(Method)  (0) 2021.09.17
[JAVA] 자바의 반복문  (0) 2021.09.13
[JAVA] 자바의 조건문  (2) 2021.09.12
[JAVA] 자바 기본  (0) 2021.09.09