Java 입출력

Seungyun.Lee·2023년 2월 8일
0

Java 코딩테스트

목록 보기
1/8
post-thumbnail

Scanner

Scanner는 띄어쓰기와 개행문자를 경계로 하여 입력값을 인식한다. 그렇기때문에 따로 가공할 필요가 없어 편리하다. 그러나 버퍼 사이즈가 1024char이기 때문에 많은 입력을 필요로 할 경우엔 성능이 안좋다.

Scanner sc = new Scanner(System.in);
int N = sc.nextInt();

N값을 입력받기

BufferedReader

개행문자만 경계로 인식하고 입력받은 데이터가 String으로 고정된다. 그렇기 때문에 데이터를 따로 가공해야한다. 하지만 Scanner보다 속도가 빠르고 입력이 많을때 유리하다.

public static void main(String[] args) throw IOException {
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	String s = br.readLine();
	int i = Integer.parseInt(br.readLine());
}

입력은 readLine();이라는 메소드를 사용. String으로 리턴 값이 고정되어 있기 때문에, 다른 타입으로 입력을 받고자 한다면 반드시 형변환이 필요 또한 예외처리를 반드시 필요로 한다. 주로 throws IOException을 많이 사용한다.

데이터 가공

BufferedReader를 통해 읽어온 데이터는 개행문자 단위(line)로 나누어진다. 공백 단위로 데이터를 가공하기 위해 StringTokenizer나 String.split( )함수를 사용한다.

// StringTokenizer
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());

//String.split()
String arr[] = s.split(" ");

StringTokenizer의 nextToken( ) 함수를 쓰면 readLine( )을 통해 입력 받은 값을 공백 단위로 구분하여 순서대로 호출할 수 있다.
String.split( ) 함수를 사용하면, 배열에 공백단위로 끊어 데이터를 저장하여 사용할 수 있다.

0개의 댓글