입력 주요 클래스 비교
| 구분 | BufferedReader | Scanner |
|---|
| 속도 | 빠름 (가장 추천) | 느림 |
| 입력 방식 | 한 줄 단위 읽기 (readLine()) | 공백, 줄 단위 읽기 |
| 변환 필요 | O (형변환 직접 해야 함) | 자동 형변환 지원 |
| 주로 쓰는 곳 | 알고리즘, 실전 코테 | 기본 입출력, 소규모 프로젝트 |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
| 구분 | StringTokenizer | String.split() |
|---|
| 구분자 | 1개만 가능 | 정규식으로 복잡하게도 가능 |
| 속도 | 더 빠름 | 상대적으로 느림 (정규식 때문) |
| 반환 | String 순회형 | String[] 배열 |
| 빈 문자열 처리 | 무시 | 빈 문자열도 반환 |
✔ 공백 기준 나누기만 하면 → StringTokenizer 추천
✔ 복잡한 패턴으로 쪼개야 하면 → split()
StringTokenizer st = new StringTokenizer(str);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
String[] arr = str.split(" ");
for (String s : arr) {
System.out.println(s);
}
그래서 뭐 쓰라고?
| 상황 | 추천 조합 |
|---|
| ✅ 대용량 입력 | BufferedReader + StringTokenizer |
| ✅ 간단한 테스트 | Scanner |
| ✅ 복잡한 문자열 쪼개기 | BufferedReader + split() |