개인공부/[JAVA] / / 2021. 12. 5. 19:30

[JAVA] 자바 Scanner 클래스

 

안녕하세요 오늘은 Java의 스캐너(Scanner) 클래스를 정리해보려합니다. 

Java에서 입력을 받을때 가장 많이 사용하는 클래스 입니다. 

 

 


Scanner 클래스 

 

-읽은 바이트를 문자,정수,실수,문자열 등 다양한 형태의 자료형으로 리턴해주는 클래스
(입력받은 바이트를 쉽게 원하는 자료형으로 변환해주는 편리한 클래스)
 
-Scanner는 공백기준 단위로 읽는다. (공백문자 : '\t', '\f', 'r', '\n', ' ')

 


 

Scanner 사용법

 

import java.util.Scanner;
-Scanner 사용을 위해서는 외부 클래스를 import하여 호출합니다. 

 

 

Scanner 클래스 선언

 

Scanner sc = new Scanner(System.in);

-System에서 입력받은 문자열을 변환해주는 Scanner클래스를 할당해줍니다.

 

 

Scanner 클래스 메소드 

 

자주쓰이는 메소드

메소드명
설명
short nextShort()
입력된 다음 토큰을 byte형태로 반환
short nextShort()
입력된 다음 토큰을 short형태로 반환
int nextInt()
입력된 다음 토큰을 int형태로 반환
long nextLong()
입력된 다음 토큰을 long형태로 반환
float nextFloat()
입력된 다음 토큰을 float 형태로 반환
double nextDouble()
입력된 다음 토큰을 double형태로 반환
String next()
입력된 다음 토큰을 String형태로 반환
String nextLine()
'\n'을 포함한 하나의 Line을 읽고 '\n'을 제외한 나머지 문자열 반환
boolean hasNext()
입력된 토큰이 있으면 true 리턴, 입력된 토큰이 없는경우에는 입력된 토큰이 있을때까지 대기 하고 입력되면 true리턴
void close()
Scanner 클래스 할당 종료

 

Scanner 클래스 예제

 

import java.util.Scanner; //클래스 호출 

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); //클래스 할당
		
        //변수 선언
		String name1;
		String name2;
		int Score1;
		int Score2;
		
		//입력
		Score1 = sc.nextInt();
		name1 = sc.next();
		name2 = sc.nextLine();
		Score2 = sc.nextInt();
		
        //출력
		System.out.println(Score1);
		System.out.println(name1);
		System.out.println(name2);
		System.out.println(Score2);
	}

}

 

입출력 결과

 

 

-순서대로 

78  (int)

name1 (String)

 name2 re 82  (String)

90  (int) 

를 입력받은것을 확인 할 수 있습니다.

 

다만, 여기서 주의점은 Scanner는 입력을 '공백' 기준으로 자른다는 점입니다.

 

그래서 name1바로 뒤 공백전까지 next() 메소드로 읽게되고 그다음 nextLine()메소드는 

공백을 포함한 ' name2 re 82'를 읽게 됩니다. ('\n' 전 까지)

 

 그래서 Scanner 클래스를 사용할때 주의점은 다음과 같습니다.

 

-토큰을 공백 기준으로 자르기 때문에 공백 기준 적적한 코딩 필요

-nextLine 사용시 '\n' 전까지 문자열을 읽는다는 점

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유