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()를 사용