ComputerScience/Java
BufferedReader, StringTokenizer 주요 메서드
imachill7guy
2025. 2. 24. 13:47
📌 1. BufferedReader 주요 메서드
🔹 1.1 readLine()
- 한 줄(\n을 기준) 전체를 문자열(String)로 읽음
- 공백도 포함해서 읽음
- 입력이 없으면 null을 반환
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
System.out.println("입력: " + input);
✅ 예제 입력:
Hello World!
✅ 출력:
입력: Hello World!
🔹 1.2 read()
- 한 글자(문자 하나)를 정수(ASCII 값)로 반환
- 더 이상 읽을 문자가 없으면 -1 반환
int ch = br.read();
System.out.println((char) ch); // 문자로 출력
✅ 예제 입력:
A
✅ 출력:
A
🔹 1.3 read(char[] cbuf, int off, int len)
- 여러 글자를 한 번에 읽어 char[] 배열에 저장
- off는 시작 위치, len은 읽을 문자 개수
char[] buffer = new char[10];
br.read(buffer, 0, 5);
System.out.println(buffer);
✅ 예제 입력:
HelloWorld
✅ 출력:
Hello
🔹 1.4 close()
- 스트림을 닫음 (사용이 끝나면 닫아야 함)
br.close();
📌 2. StringTokenizer 주요 메서드
StringTokenizer는 문자열을 특정 구분자로 나눌 때 사용
(공백 기준으로 자를 때 split()보다 빠름!)
StringTokenizer st = new StringTokenizer("Java is fun");
🔹 2.1 nextToken()
- 다음 토큰을 반환
- 남은 토큰이 없으면 NoSuchElementException 발생
StringTokenizer st = new StringTokenizer("Java is fun");
System.out.println(st.nextToken()); // "Java"
System.out.println(st.nextToken()); // "is"
System.out.println(st.nextToken()); // "fun"
Java
is
fun
🔹 2.2 hasMoreTokens()
- 더 읽을 토큰이 있는지 확인 (true / false 반환)
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
✅ 출력:
Java
is
fun
🔹 2.3 countTokens()
- 남은 토큰 개수 반환
StringTokenizer st = new StringTokenizer("Hello,World,Java", ",");
System.out.println(st.countTokens()); // 3
✅ 출력:
3
🔹 2.4 StringTokenizer에서 구분자 지정
- StringTokenizer(문자열, "구분자")로 특정 구분자를 지정할 수 있음
StringTokenizer st = new StringTokenizer("Hello,World,Java", ",");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
✅ 출력:
Hello
World
Java
🎯 정리
클래스메서드설명
BufferedReader | readLine() | 한 줄 입력 (String 반환) |
read() | 한 문자 입력 (ASCII 정수 반환) | |
read(char[], off, len) | 여러 문자 읽어 배열에 저장 | |
close() | 입력 스트림 닫기 | |
StringTokenizer | nextToken() | 다음 토큰 반환 |
hasMoreTokens() | 더 읽을 토큰이 있는지 확인 | |
countTokens() | 남은 토큰 개수 반환 |
✔ BufferedReader는 빠르게 입력받을 때 사용!
✔ StringTokenizer는 문자열을 구분자로 나눌 때 사용!