입력받기
1. nextLine() vs next()
- nextLine()만 개행 문자(\n)를 기준으로 입력을 받는다.
- next(), nextInt()등은 공백(띄어쓰기, 탭 등)을 기준으로 입력을 받는다.
char bloodType = sc.next().charAt(0);
String info = sc.nextLine(); // nextLine은 줄 넘김 문자가 인식되기 때문에, \r\n이 입력으로 들어온다.
// info에 문자열 입력을 받기 위해서는 다음과 같이 작성
char bloodType = sc.next().charAt(0);
sc.nextLine();
String info = sc.nextLine();
// 다음과 같이 순서가 바뀌는 것은 가능
String info = sc.nextLine();
char bloodType = sc.next().charAt(0);
2. BufferedReader
알고리즘 풀이를 할 경우에는 Scanner 사용은 시간 초과를 유발할 수 있음! -> Buffered를 사용한다!!
- BufferedReader를 생성할때, 매개변수로 Reader 타입이 들어와야하는데,
- System.in은 InputStream 타입이다.
- => InputStreamReader (InputStream -> Reader 반환) 사용!
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// 대부분 다음과 같이 생성과 동시에 사용
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// BufferedReader를 활용한 한 문장 읽기
String info = br.readLine();