
문제 유형: A + B - 4
3일차 게시물에서 말했듯 오늘은 EOF에 대해서 좀 공부해봐야겠다.
문제는 어제 거의 해결했지만 처음 사용하고 처음 보는 문장들이 너무 많아서 검색하고 정리하는 시간이 오래걸렸다.
"End Of File"의 약자이다. text파일의 끝을 알리는 문자라고 한다.
Scanner에서 EOF를 하는 방법도 있지만 내가 사용한 BufferedReader기준으로 적어보면
1. 먼저 아무것도 없는 String변수 s 하나를 생성한다.
2. br.readLine() 메서드를 사용하여 변수 s에 입력을 받아온다.
3. 변수 s에 들어온 입력값이 null인지 확인한다. 만약 null이 들어왔다면 while문을 종료시킨다.
4. !s.isEmpty() 메서드를 이용하여 null이 아닌 빈칸, 즉 enter가 들어와도 종료시킬 수 있도록 만들었다.
{ s = br.readLine() } 메서드를 이용해서 받은 입력값을
{ StringTokenizer }로 공백기준 토큰으로 나누어 변수 A,B에 저장하도록 한다.
그 후 { StringBuilder }의 { append }메서드를 사용해 sb에 저장해놓은 후
while문이 종료되면 sb를 출력해주는 방식으로 작성했다.
이 문제를 고민하면서 여러가지 문법?의 사용법을 알고 존재이유를 알았다.
- StringTokenizer: 이 문제에서 변수 s에 저장된 입력값을 공백을 기준으로 변수 A, B 에 저장해줄 수 있도록 해줬다
- StringBuilder: 보통의 String 변수는 한번 저장한 값을 변경하거나 수정할 수 없다. 하지만 StringBuilder로 객체를 생성한다면 추가, 생성, 삭제가 가능하다. 그렇기에 작업적인 면에서 더욱 빠르고 간결해진다고 한다.