참고 블로그 : https://m.blog.naver.com/ka28/221850826909
요약
BufferedReader : 한 줄 읽어들이기 위해
StringTokenizer : 한 줄 읽은 거 자르기 위해
* 참고. 문자열 자르기는 String의 subString()과 split()도 있음. #11721 포스팅 참고
BuffredReader 사용법
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //선언
String s = bf.readLine(); //String
int i = Integer.parseInt(bf.readLine()); //Int
< readLine() 사용 시 주의점 >
1. readLine()시 리턴값을 String으로 고정되기에 String이 아닌 다른 타입으로 입력을 받을려면 형 변환을 꼭 해주어야한다.
2. 예외처리를 꼭 해주어야한다는 점이다. readLine을 할때마다 try & catch를 활용하여 예외처리를 해주어도 되지만 대개 throws IOException을 통하여 작업한다.
* 참고로 readLine()은 읽을 데이터가 없을 시 null을 반환.
Read한 데이터(Line단위)를 공백 단위로 가공
StringTokenizer st = new StringTokenizer(s); //StringTokenizer인자값에 입력 문자열 넣음
int a = Integer.parseInt(st.nextToken()); //첫번째 호출
int b = Integer.parseInt(st.nextToken()); //두번째 호출
String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 넣음
1. StringTokenizer에 nextToken()함수를 쓰면 readLine()을 통해 입력받은 값을 공백 단위로 구분하여 순서대로 호출할 수 있다.
2. String.split()함수를 활용하여 배열에 공백단위로 끊어서 데이터를 넣고 사용하는 방식이다.
> 1이 성능 측면에서 훨씬 우수
'백준' 카테고리의 다른 글
DP #1463: 1로 만들기 [JAVA] (0) | 2023.05.28 |
---|---|
헷갈리는 거 정리 (0) | 2023.05.06 |
이런저런 문제들 #10799: 쇠막대기 (0) | 2022.09.28 |
이분탐색/삼분탐색 #2805: 나무 자르기 (0) | 2022.09.07 |
이분탐색/삼분탐색 #1654: 랜선 자르기 (0) | 2022.08.31 |