728x90
- BufferedReader : 문자열로 입력을 받게 되어있음. 받을 때 마다 적절한 형변환이 필요함. 그러나 스캐너보다 빠름
- InputStream : 자바에서 기본이 되는 입출력, Stream이란 출발지와 도착지를 이어주는 다리임
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
버퍼리더를 사용하면 위의 방식으로 사용하게 되는데 코드를 해석해보면
1. 텍스트를 읽어 메모리에 저장해둠 (BufferReader)
2. InputStreamReader(System.in) 에서 바이트 스트림을 문자 스트림으로 변환
이제 br을 통해 값을 입력받을 수 있음.
단, 이것을 사용하려면 예외처리 IOException e가 필요함
- StringTokenizer : 공백이 있다면 뒤에 문자열이 공백 자리를 땡김, 백준을 풀 때 많이 사용하게 된다. 그리고 위의 BufferrReader와 연계하여 사용하는 경우가 많다.
int N, M;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
-> input 4 5
-> N = 4, M = 5
for(int j = 0; j < M; j++){
st = new StringTokenizer(br.readLine());
int pre = Integer.parseInt(st.nextToken());
int after = Integer.parseInt(st.nextToken());
int tmp = array[pre];
array[pre] = array[after];
array[after] = tmp;
}
단, 위처럼 계속 값을 받아야하면 new StringTokenizer를 새로 선언해야한다.
'Dev > Java' 카테고리의 다른 글
Java의 객체 정렬과 객체 우선순위 큐 (0) | 2024.06.27 |
---|---|
Java 기초 체력 기르기 (0) | 2024.04.13 |
Java - 문자열 자르기, 문자열 교체, 문자열 카피 (0) | 2023.04.25 |
Java - Primitive Type / Reference Type (0) | 2023.04.24 |