안녕하세요 오늘은 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' 전까지 문자열을 읽는다는 점
'개인공부 > [JAVA]' 카테고리의 다른 글
[JAVA] 묵시적 형변환/ 업캐스팅 (Upcasting) (0) | 2021.01.17 |
---|---|
[JAVA] Java 상속과 Protected 접근제어자 (0) | 2021.01.17 |