이 두 클래스는 동일한 목적으로 만들어진 것은 아니지만 알고리즘 사이트에서 입력을 받을 때 주로 사용된다.
Scanner 클래스는 사용이 매우 간편하지만 속도가 느리다는 치명적인 단점이 있다.
반면, BufferedReader는 성능이 좋은 대신 한 줄을 통째로 입력 받고 선언할 것이 많다.
Scanner를 사용했을 경우 채점 시에 시간초과가 일어날 수 있기 때문에 BufferdReader를 쓰는 것이 바람직할 듯하다.
아래는 각각 문자열을 입력받는 방법이다.
import java.util.Scanner; //Scanner 클래스 임포트
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
sc.close(); //닫아주고
System.out.println(str); // 출력
}
import java.io.*; // io 전체 임포트
public class Main {
public static void main(String[] args) throws IOException{ //예외처리 필수
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
System.out.println(str);
}
주석 해제 : Ctrl + Shift + \
throws exception -> 예외 발생 이후 코드 실행하지 않음
try ~ catch -> 예외 발생 이후 코드를 실행함