BufferedReader, StringTokenizer 클래스 사용예

황상익·2024년 1월 2일
public class StringRepeat {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st = new StringTokenizer(br.readLine()); //공백단위로 읽어드릴수 있는 라인 추가
        int c = Integer.parseInt(st.nextToken()); //한줄에서 공백 단위로 읽음
        int d = Integer.parseInt(st.nextToken()); //한줄에서 공백 단위로 읽음
        System.out.println(c + " " + d);

        st = new StringTokenizer(br.readLine(),","); // , 단위로 읽어드릴수 있는 라인 추가
        int e = Integer.parseInt(st.nextToken()); //한줄에서 , 단위로 읽음
        int f = Integer.parseInt(st.nextToken()); //한줄에서 , 단위로 읽음
        System.out.println(e + " " + f);
    }
}
출처: https://deftkang.tistory.com/215 [deftkang의 IT 블로그:티스토리]

BufferedReader로 라인을 읽고, 그 라인 안에서 특정 문자열로 읽어 드릴 수 있으려면 StringTokenizer 클래스를 사용.
new StringTokenizer(br.readLine)으로 하면, 라인을 읽어드릴 수 있고, nextToken()으로 공백 단위로 읽어 드릴 수 있다.

Scanner 클래스에 비해서 사용이 힘든 점은 예외 처리를 해줘야 하고, nextToken으로 읽어 드릴 때는 String으로 밖에 읽지를 못해서, 정주로 읽고싶을때는 Integer.parseInt로 숫자로 문자열을 숫자형으로 형 변환

라인 한줄을 읽고, 다음 라인을 읽고 싶을때는 new StringTokenizer(br.readLine)을 추가 하고, 특정 문자열 단위로 읽고 싶을때는 new StringTokenizer(st.nextToken()), 특정문자열 뒤에 인자를 추가

만약 공백 단위로 한줄을 다 읽고 싶다면 hasMoreTokens()를 사용

profile
개발자를 향해 가는 중입니다~! 항상 겸손

0개의 댓글