Scanner Class는 사용자로부터 입력되는 정수, 실수, 문자열을 처리하는 클래스이다.
import java.util.Scanner;
Scanner sc= new Scanner(System.in);
정수: sc.nextInt();
실수: sc.nextFloat(); 또는 sc.nextDouble();
문자열: sc.next(); 또는 sc.nextLine();
위와 같이 원하는 자료형의 함수를 사용하여 원하는 값을 입력받을 수 있다.
문자열을 받아오는 데는 next()와 nextLine()이 있다.
next()는 띄어쓰기를 입력할 수 없고, 띄어쓰기를 구분 인자로 생각하여 각각 저장하고 줄 구분까지 저장하지 않는다.
nextLine()은 문자열에 띄어쓰기 가능하고, 줄 구분까지 저장한다.
nextLine()을 사용할 때
int num = sc.nextInt();
String s = sc.nextLine();
이 순서로 사용하면 첫 번째 정수만 입력받고 다음에 실행되는 nextLine() 부분을 건너뛰게 되는 에러가 발생할 수 있다. 정수를 입력받을 때 발생하는 개행문자(\n)가 처리되지 않고 buffer에 남기 때문이다.
int num = sc.nextInt();
sc.nextLine();
String s = sc.nextLine();
int num = sc.nextInt();
sc.skip("[\\r\\n]+");
String s = sc.nextLine();
자바 Scanner은 문자열을 입력받는 것은 가능하지만, 문자를 입력받는 기능이 없다.
String str = sc.next()로 문자열을 입력받은 다음
str.charAt(0)으로 첫번째 문자만 저장하여 문자형으로 사용할 수 있다!
//1번 방법
String str = sc.next();
char c = str.charAt(0);
//2번 방법
char c = sc.next().charAt(0);